Byte queue limits (BQL) is an algorithm to manage sizes of queues in network cards based on bytes, not on packets. The algorithm tries to estimate how many bytes the card is able to transmit, sizes the queue accordingly and accommodates to changing load. Properly sized (shorter) queues push queuing to upper layers of the stack, the queuing disciplines (qdisc), which reduces the time between a packet is scheduled for transmission and when it hits the wire. This reduces latency and allows better scheduling decisions in software.
BQL is here for a year and it seems to work well given the lack of major complains. In this talk we are going to present experimental data on how BQL actually behaves and what are the effects of BQL buffer management for the rest of the stack. We are going to show that BQL does not need any knobs to selects a good size of the queues. We are also going to discuss and explain some limitations of the algorithm and some corner cases of its deployment due to its dependency on outer events that pace its execution.
Topic Lead: Tomas Hruby Tomas is a PhD candidate at the Free University in Amsterdam in the Minix group of prof. Andy Tanenbaum and is exploring how to take advantage of multicore processors for designing reliable systems. He has been working on intrusion detection, filesystems and L4 microkernel. He is currently an intern in the Linux networking team at Google.