[Codel] [RFC] ath10k: implement dql for htt tx

Michal Kazior michal.kazior at tieto.com
Thu Mar 31 02:39:38 EDT 2016


On 30 March 2016 at 17:28, Ben Greear <greearb at candelatech.com> wrote:
> On 03/30/2016 02:22 AM, Michal Kazior wrote:
>>
>> On 29 March 2016 at 17:54, Ben Greear <greearb at candelatech.com> wrote:
>>>
>>> On 03/29/2016 12:49 AM, Michal Kazior wrote:
>>>
>>>>> if you are getting a pure codel result of 160ms, that means the
>>>>> implementation is broken. But I think (after having read your
>>>>> description twice), the baseline result today of 160ms of queuing was
>>>>> with a fq_codel *qdisc* doing the work on top of huge buffers,
>>>>
>>>>
>>>>
>>>> Yes. The 160ms is with fq_codel qdisc with ath10k doing DQL at 6mbps.
>>>> Without DQL ath10k would clog up all tx slots (1424 of them) with
>>>> frames. At 6mbps you typically want/need a handful (5-10) of frames to
>>>> be queued.
>>>
>>>
>>>
>>> Have you actually verified you can use all tx slots?
>>
>>
>> It works in most cases. I guess you're suspecting some of your
>> tx(flushing?) problems might be induced by overcommiting?
>>
>>> The way the
>>> firmware uses it's tx buffers I think you may not be able to actually
>>> do that...and in practice, you will get a lot fewer usable tx-buffers
>>> than configured....
>>
>>
>> Could be, e.g. I'm aware management frames are kind of a special case
>> in recent firmware revisions.
>>
>> What would/do you expect firmware would/will do when we overcommit?
>> The driver does advertise number of HTT tx slots so I would expect it
>> to work fine if it didn't crash during boot.
>
>
> The firmware will return something like tx-dropped immediately.  The reason
> is that the firmware keeps more than one internal priority queue, and in
> general, reserves
> some of the tx-descriptors for high priority.
>
> So, you never see tx-queues completely full in the driver, so tx queues are
> not stopped farther up the stack.
>
> Possibly I am confused about some of this, so I'm quite curious if you ever
> see
> tx-queues determined to be full in the ath10k driver.

I haven't analyzed it this much. Nevertheless it's good to know we
might be overcommiting on the HTT Tx. One more reason to use DQL
and/or schedule tx in a smarter way.


MichaƂ


More information about the Codel mailing list