* Enabling Byte Queue Limits in the ath5k wireless driver
@ 2013-10-03 18:49 Anirudh Sivaraman
2013-10-06 3:39 ` Simon Barber
0 siblings, 1 reply; 7+ messages in thread
From: Anirudh Sivaraman @ 2013-10-03 18:49 UTC (permalink / raw)
To: bloat-devel
Hi,
I am looking into enabling BQL for the ath5k driver, and was wondering
if anyone here knows of any prior efforts in this direction. In
particular, is BQL even a sensible strategy for wireless drivers?
Thank you in advance for any advice you may have in this regard.
Anirudh
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-03 18:49 Enabling Byte Queue Limits in the ath5k wireless driver Anirudh Sivaraman
@ 2013-10-06 3:39 ` Simon Barber
2013-10-06 13:31 ` Anirudh Sivaraman
0 siblings, 1 reply; 7+ messages in thread
From: Simon Barber @ 2013-10-06 3:39 UTC (permalink / raw)
To: bloat-devel
BQL does make sense, but TQL would be even better - 'Time Queue Limits'.
Which would work based on an estimate of how much time each packet will
take to send, and limiting the hardware queue to contain a total mount
of 'time'. The purpose of the hardware queue is to mask interrupt and
other latencies involved in refilling an empty queue - a time based
phenomenon. Hence time is the best metric to control it - with fixed
speed interfaced like ethernet bytes=time, but not so on wireless.
Simon
On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
> Hi,
>
> I am looking into enabling BQL for the ath5k driver, and was wondering
> if anyone here knows of any prior efforts in this direction. In
> particular, is BQL even a sensible strategy for wireless drivers?
> Thank you in advance for any advice you may have in this regard.
>
> Anirudh
> _______________________________________________
> Bloat-devel mailing list
> Bloat-devel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-06 3:39 ` Simon Barber
@ 2013-10-06 13:31 ` Anirudh Sivaraman
2013-10-06 15:01 ` Simon Barber
0 siblings, 1 reply; 7+ messages in thread
From: Anirudh Sivaraman @ 2013-10-06 13:31 UTC (permalink / raw)
To: Simon Barber; +Cc: bloat-devel
On Sat, Oct 5, 2013 at 11:39 PM, Simon Barber <simon@superduper.net> wrote:
> BQL does make sense, but TQL would be even better - 'Time Queue Limits'.
> Which would work based on an estimate of how much time each packet will take
> to send, and limiting the hardware queue to contain a total mount of 'time'.
> The purpose of the hardware queue is to mask interrupt and other latencies
> involved in refilling an empty queue - a time based phenomenon. Hence time
> is the best metric to control it - with fixed speed interfaced like ethernet
> bytes=time, but not so on wireless.
>
Thank you for your reply. TQL does make more sense for wireless at
least. However, assuming that someone implement a qdisc like CoDel and
attaches it to the wireless interface, doesn't TQL (or for that matter
BQL) lead to two possibly competing control loops (one at the qdisc,
and one at the device driver)?
Anirudh
> Simon
>
>
> On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
>>
>> Hi,
>>
>> I am looking into enabling BQL for the ath5k driver, and was wondering
>> if anyone here knows of any prior efforts in this direction. In
>> particular, is BQL even a sensible strategy for wireless drivers?
>> Thank you in advance for any advice you may have in this regard.
>>
>> Anirudh
>> _______________________________________________
>> Bloat-devel mailing list
>> Bloat-devel@lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/bloat-devel
>
>
> _______________________________________________
> Bloat-devel mailing list
> Bloat-devel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-06 13:31 ` Anirudh Sivaraman
@ 2013-10-06 15:01 ` Simon Barber
2013-10-06 16:36 ` Anirudh Sivaraman
0 siblings, 1 reply; 7+ messages in thread
From: Simon Barber @ 2013-10-06 15:01 UTC (permalink / raw)
To: Anirudh Sivaraman; +Cc: bloat-devel
BQL or TQL are open-loop - there is no feedback. The amount of bytes or
total packet transmission time in the queue is counted when packets
enter and leave the queue, and a hard limit of total bytes or total time
in queue is set. When I say time - I mean that on a packet entering the
queue the total time the packet will take to transmit is calculated, and
that time is added to a count to the total time currently in queue. When
a packet has been transmitted the time is subtracted from the total time
in queue. There would be no interference with CODEL running in front of
this.
Simon
On 10/6/2013 6:31 AM, Anirudh Sivaraman wrote:
> On Sat, Oct 5, 2013 at 11:39 PM, Simon Barber <simon@superduper.net> wrote:
>> BQL does make sense, but TQL would be even better - 'Time Queue Limits'.
>> Which would work based on an estimate of how much time each packet will take
>> to send, and limiting the hardware queue to contain a total mount of 'time'.
>> The purpose of the hardware queue is to mask interrupt and other latencies
>> involved in refilling an empty queue - a time based phenomenon. Hence time
>> is the best metric to control it - with fixed speed interfaced like ethernet
>> bytes=time, but not so on wireless.
>>
> Thank you for your reply. TQL does make more sense for wireless at
> least. However, assuming that someone implement a qdisc like CoDel and
> attaches it to the wireless interface, doesn't TQL (or for that matter
> BQL) lead to two possibly competing control loops (one at the qdisc,
> and one at the device driver)?
>
> Anirudh
>> Simon
>>
>>
>> On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
>>> Hi,
>>>
>>> I am looking into enabling BQL for the ath5k driver, and was wondering
>>> if anyone here knows of any prior efforts in this direction. In
>>> particular, is BQL even a sensible strategy for wireless drivers?
>>> Thank you in advance for any advice you may have in this regard.
>>>
>>> Anirudh
>>> _______________________________________________
>>> Bloat-devel mailing list
>>> Bloat-devel@lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>
>> _______________________________________________
>> Bloat-devel mailing list
>> Bloat-devel@lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/bloat-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-06 15:01 ` Simon Barber
@ 2013-10-06 16:36 ` Anirudh Sivaraman
2013-10-06 21:03 ` Simon Barber
0 siblings, 1 reply; 7+ messages in thread
From: Anirudh Sivaraman @ 2013-10-06 16:36 UTC (permalink / raw)
To: Simon Barber; +Cc: bloat-devel
On Sun, Oct 6, 2013 at 11:01 AM, Simon Barber <simon@superduper.net> wrote:
> BQL or TQL are open-loop - there is no feedback. The amount of bytes or
> total packet transmission time in the queue is counted when packets enter
> and leave the queue, and a hard limit of total bytes or total time in queue
> is set. When I say time - I mean that on a packet entering the queue the
> total time the packet will take to transmit is calculated, and that time is
> added to a count to the total time currently in queue. When a packet has
> been transmitted the time is subtracted from the total time in queue. There
> would be no interference with CODEL running in front of this.
>
I thought, based on http://lwn.net/Articles/454390/, that the queue
length is dynamically adjusted by DQL/BQL/TQL. This is the device
driver control loop I was referring to. This queue length in turn
dictates when the dequeue function is called at the qdisc layer, where
CoDel is running. Please correct me if I am wrong here.
Anirudh
> Simon
>
>
> On 10/6/2013 6:31 AM, Anirudh Sivaraman wrote:
>>
>> On Sat, Oct 5, 2013 at 11:39 PM, Simon Barber <simon@superduper.net>
>> wrote:
>>>
>>> BQL does make sense, but TQL would be even better - 'Time Queue Limits'.
>>> Which would work based on an estimate of how much time each packet will
>>> take
>>> to send, and limiting the hardware queue to contain a total mount of
>>> 'time'.
>>> The purpose of the hardware queue is to mask interrupt and other
>>> latencies
>>> involved in refilling an empty queue - a time based phenomenon. Hence
>>> time
>>> is the best metric to control it - with fixed speed interfaced like
>>> ethernet
>>> bytes=time, but not so on wireless.
>>>
>> Thank you for your reply. TQL does make more sense for wireless at
>> least. However, assuming that someone implement a qdisc like CoDel and
>> attaches it to the wireless interface, doesn't TQL (or for that matter
>> BQL) lead to two possibly competing control loops (one at the qdisc,
>> and one at the device driver)?
>>
>> Anirudh
>>>
>>> Simon
>>>
>>>
>>> On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am looking into enabling BQL for the ath5k driver, and was wondering
>>>> if anyone here knows of any prior efforts in this direction. In
>>>> particular, is BQL even a sensible strategy for wireless drivers?
>>>> Thank you in advance for any advice you may have in this regard.
>>>>
>>>> Anirudh
>>>> _______________________________________________
>>>> Bloat-devel mailing list
>>>> Bloat-devel@lists.bufferbloat.net
>>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>>
>>>
>>> _______________________________________________
>>> Bloat-devel mailing list
>>> Bloat-devel@lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-06 16:36 ` Anirudh Sivaraman
@ 2013-10-06 21:03 ` Simon Barber
2013-10-08 11:00 ` Anirudh Sivaraman
0 siblings, 1 reply; 7+ messages in thread
From: Simon Barber @ 2013-10-06 21:03 UTC (permalink / raw)
To: Anirudh Sivaraman; +Cc: bloat-devel
Indeed - but this is based on underruns while there is more to send -
once it has established a length that does a good job of keeping the
hardware fed it should not change much. This control loop will slowly
catch up with the different speeds wireless packets are sent at (if a
single link is in use, not multiple links) but it would be better
controlled and also handle multiple links on one interface (e.g. Access
point mode, or 11z) properly if packet duration was considered.
Simon
On 10/6/2013 9:36 AM, Anirudh Sivaraman wrote:
> On Sun, Oct 6, 2013 at 11:01 AM, Simon Barber <simon@superduper.net> wrote:
>> BQL or TQL are open-loop - there is no feedback. The amount of bytes or
>> total packet transmission time in the queue is counted when packets enter
>> and leave the queue, and a hard limit of total bytes or total time in queue
>> is set. When I say time - I mean that on a packet entering the queue the
>> total time the packet will take to transmit is calculated, and that time is
>> added to a count to the total time currently in queue. When a packet has
>> been transmitted the time is subtracted from the total time in queue. There
>> would be no interference with CODEL running in front of this.
>>
> I thought, based on http://lwn.net/Articles/454390/, that the queue
> length is dynamically adjusted by DQL/BQL/TQL. This is the device
> driver control loop I was referring to. This queue length in turn
> dictates when the dequeue function is called at the qdisc layer, where
> CoDel is running. Please correct me if I am wrong here.
>
> Anirudh
>
>> Simon
>>
>>
>> On 10/6/2013 6:31 AM, Anirudh Sivaraman wrote:
>>> On Sat, Oct 5, 2013 at 11:39 PM, Simon Barber <simon@superduper.net>
>>> wrote:
>>>> BQL does make sense, but TQL would be even better - 'Time Queue Limits'.
>>>> Which would work based on an estimate of how much time each packet will
>>>> take
>>>> to send, and limiting the hardware queue to contain a total mount of
>>>> 'time'.
>>>> The purpose of the hardware queue is to mask interrupt and other
>>>> latencies
>>>> involved in refilling an empty queue - a time based phenomenon. Hence
>>>> time
>>>> is the best metric to control it - with fixed speed interfaced like
>>>> ethernet
>>>> bytes=time, but not so on wireless.
>>>>
>>> Thank you for your reply. TQL does make more sense for wireless at
>>> least. However, assuming that someone implement a qdisc like CoDel and
>>> attaches it to the wireless interface, doesn't TQL (or for that matter
>>> BQL) lead to two possibly competing control loops (one at the qdisc,
>>> and one at the device driver)?
>>>
>>> Anirudh
>>>> Simon
>>>>
>>>>
>>>> On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
>>>>> Hi,
>>>>>
>>>>> I am looking into enabling BQL for the ath5k driver, and was wondering
>>>>> if anyone here knows of any prior efforts in this direction. In
>>>>> particular, is BQL even a sensible strategy for wireless drivers?
>>>>> Thank you in advance for any advice you may have in this regard.
>>>>>
>>>>> Anirudh
>>>>> _______________________________________________
>>>>> Bloat-devel mailing list
>>>>> Bloat-devel@lists.bufferbloat.net
>>>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>>>
>>>> _______________________________________________
>>>> Bloat-devel mailing list
>>>> Bloat-devel@lists.bufferbloat.net
>>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Enabling Byte Queue Limits in the ath5k wireless driver
2013-10-06 21:03 ` Simon Barber
@ 2013-10-08 11:00 ` Anirudh Sivaraman
0 siblings, 0 replies; 7+ messages in thread
From: Anirudh Sivaraman @ 2013-10-08 11:00 UTC (permalink / raw)
To: Simon Barber; +Cc: bloat-devel
On Sun, Oct 6, 2013 at 5:03 PM, Simon Barber <simon@superduper.net> wrote:
> Indeed - but this is based on underruns while there is more to send - once
> it has established a length that does a good job of keeping the hardware fed
> it should not change much. This control loop will slowly catch up with the
> different speeds wireless packets are sent at (if a single link is in use,
> not multiple links) but it would be better controlled and also handle
> multiple links on one interface (e.g. Access point mode, or 11z) properly if
> packet duration was considered.
>
Ok, that makes a lot of sense. I guess I 'll try implementing BQL
first, followed by TQL, and see what I find.
Anirudh
> Simon
>
>
> On 10/6/2013 9:36 AM, Anirudh Sivaraman wrote:
>>
>> On Sun, Oct 6, 2013 at 11:01 AM, Simon Barber <simon@superduper.net>
>> wrote:
>>>
>>> BQL or TQL are open-loop - there is no feedback. The amount of bytes or
>>> total packet transmission time in the queue is counted when packets enter
>>> and leave the queue, and a hard limit of total bytes or total time in
>>> queue
>>> is set. When I say time - I mean that on a packet entering the queue the
>>> total time the packet will take to transmit is calculated, and that time
>>> is
>>> added to a count to the total time currently in queue. When a packet has
>>> been transmitted the time is subtracted from the total time in queue.
>>> There
>>> would be no interference with CODEL running in front of this.
>>>
>> I thought, based on http://lwn.net/Articles/454390/, that the queue
>> length is dynamically adjusted by DQL/BQL/TQL. This is the device
>> driver control loop I was referring to. This queue length in turn
>> dictates when the dequeue function is called at the qdisc layer, where
>> CoDel is running. Please correct me if I am wrong here.
>>
>> Anirudh
>>
>>> Simon
>>>
>>>
>>> On 10/6/2013 6:31 AM, Anirudh Sivaraman wrote:
>>>>
>>>> On Sat, Oct 5, 2013 at 11:39 PM, Simon Barber <simon@superduper.net>
>>>> wrote:
>>>>>
>>>>> BQL does make sense, but TQL would be even better - 'Time Queue
>>>>> Limits'.
>>>>> Which would work based on an estimate of how much time each packet will
>>>>> take
>>>>> to send, and limiting the hardware queue to contain a total mount of
>>>>> 'time'.
>>>>> The purpose of the hardware queue is to mask interrupt and other
>>>>> latencies
>>>>> involved in refilling an empty queue - a time based phenomenon. Hence
>>>>> time
>>>>> is the best metric to control it - with fixed speed interfaced like
>>>>> ethernet
>>>>> bytes=time, but not so on wireless.
>>>>>
>>>> Thank you for your reply. TQL does make more sense for wireless at
>>>> least. However, assuming that someone implement a qdisc like CoDel and
>>>> attaches it to the wireless interface, doesn't TQL (or for that matter
>>>> BQL) lead to two possibly competing control loops (one at the qdisc,
>>>> and one at the device driver)?
>>>>
>>>> Anirudh
>>>>>
>>>>> Simon
>>>>>
>>>>>
>>>>> On 10/3/2013 11:49 AM, Anirudh Sivaraman wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am looking into enabling BQL for the ath5k driver, and was wondering
>>>>>> if anyone here knows of any prior efforts in this direction. In
>>>>>> particular, is BQL even a sensible strategy for wireless drivers?
>>>>>> Thank you in advance for any advice you may have in this regard.
>>>>>>
>>>>>> Anirudh
>>>>>> _______________________________________________
>>>>>> Bloat-devel mailing list
>>>>>> Bloat-devel@lists.bufferbloat.net
>>>>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Bloat-devel mailing list
>>>>> Bloat-devel@lists.bufferbloat.net
>>>>> https://lists.bufferbloat.net/listinfo/bloat-devel
>>>
>>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-10-08 11:00 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-03 18:49 Enabling Byte Queue Limits in the ath5k wireless driver Anirudh Sivaraman
2013-10-06 3:39 ` Simon Barber
2013-10-06 13:31 ` Anirudh Sivaraman
2013-10-06 15:01 ` Simon Barber
2013-10-06 16:36 ` Anirudh Sivaraman
2013-10-06 21:03 ` Simon Barber
2013-10-08 11:00 ` Anirudh Sivaraman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox