Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
* [Cerowrt-devel] [Bug #442] < vs <= in two comparisons
@ 2014-04-19  3:26 Dave Taht
  2014-04-19 11:22 ` Felix Fietkau
  0 siblings, 1 reply; 3+ messages in thread
From: Dave Taht @ 2014-04-19  3:26 UTC (permalink / raw)
  To: cerowrt-devel, cerowrt, Felix Fietkau

Could part of it be as simple as not checking for '<='  but only < in
txq_max_pending below?

in ath_tx_start:

        ath_txq_lock(sc, txq);
        if (txq == sc->tx.txq_map[q] &&
            ++txq->pending_frames > sc->tx.txq_max_pending[q] &&
            !txq->stopped) {
                ieee80211_stop_queue(sc->hw, q);
                txq->stopped = true;
        }

in ath_txq_skb_done:

        if (txq->stopped &&
            txq->pending_frames < sc->tx.txq_max_pending[q]) {
                ieee80211_wake_queue(sc->hw, q);
                txq->stopped = false;
        }


-- 
Dave Täht

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Cerowrt-devel] [Bug #442] < vs <= in two comparisons
  2014-04-19  3:26 [Cerowrt-devel] [Bug #442] < vs <= in two comparisons Dave Taht
@ 2014-04-19 11:22 ` Felix Fietkau
  2014-04-19 18:00   ` Dave Taht
  0 siblings, 1 reply; 3+ messages in thread
From: Felix Fietkau @ 2014-04-19 11:22 UTC (permalink / raw)
  To: Dave Taht, cerowrt-devel, cerowrt

On 2014-04-19 05:26, Dave Taht wrote:
> Could part of it be as simple as not checking for '<='  but only < in
> txq_max_pending below?
I don't see how that would make any meaningful difference in practice.
By the way, did you test my patch?

> in ath_tx_start:
> 
>         ath_txq_lock(sc, txq);
>         if (txq == sc->tx.txq_map[q] &&
>             ++txq->pending_frames > sc->tx.txq_max_pending[q] &&
>             !txq->stopped) {
>                 ieee80211_stop_queue(sc->hw, q);
>                 txq->stopped = true;
>         }
> 
> in ath_txq_skb_done:
> 
>         if (txq->stopped &&
>             txq->pending_frames < sc->tx.txq_max_pending[q]) {
>                 ieee80211_wake_queue(sc->hw, q);
>                 txq->stopped = false;
>         }
> 
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Cerowrt-devel] [Bug #442] < vs <= in two comparisons
  2014-04-19 11:22 ` Felix Fietkau
@ 2014-04-19 18:00   ` Dave Taht
  0 siblings, 0 replies; 3+ messages in thread
From: Dave Taht @ 2014-04-19 18:00 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: cerowrt, cerowrt-devel

On Sat, Apr 19, 2014 at 4:22 AM, Felix Fietkau <nbd@openwrt.org> wrote:
> On 2014-04-19 05:26, Dave Taht wrote:
>> Could part of it be as simple as not checking for '<='  but only < in
>> txq_max_pending below?
> I don't see how that would make any meaningful difference in practice.

Didn't think it would, still thought <= was more correct.

> By the way, did you test my patch?

It is in the as yet untested 3.10.36-6 build, along with resetting qlen
down to 12 again to try to trigger the bug sooner.

http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/3.10.36-6/


>
>> in ath_tx_start:
>>
>>         ath_txq_lock(sc, txq);
>>         if (txq == sc->tx.txq_map[q] &&
>>             ++txq->pending_frames > sc->tx.txq_max_pending[q] &&
>>             !txq->stopped) {
>>                 ieee80211_stop_queue(sc->hw, q);
>>                 txq->stopped = true;
>>         }
>>
>> in ath_txq_skb_done:
>>
>>         if (txq->stopped &&
>>             txq->pending_frames < sc->tx.txq_max_pending[q]) {
>>                 ieee80211_wake_queue(sc->hw, q);
>>                 txq->stopped = false;
>>         }
>>
>>
>



-- 
Dave Täht

NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-04-19 18:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-19  3:26 [Cerowrt-devel] [Bug #442] < vs <= in two comparisons Dave Taht
2014-04-19 11:22 ` Felix Fietkau
2014-04-19 18:00   ` Dave Taht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox