On Tue, 2006-08-08 at 12:17 +1000, Herbert Xu wrote:

> CPU0                          CPU1
> __qdisc_run
>       netif_queue_stopped
>                               netif_wake_queue
>                                       __netif_schedule
>                                               test_bit
>       clear_bit
> 
> So you may end up losing that wake event.  

Indeed you may.
I think what i was seeing is (motivating the patch to begin with) is:
if you got out of qdisc restart because driver returned TX_BUSY
leading to a netif_queue_stopped then you will have rescheduled on CPU0.
The only exception is the one example i mentioned in earlier email where
a TX_OK is returned by e1000. 

> The QDISC_RUNNING bit was
> originally designed to be used under the qdisc lock, so using it
> in a different contexts will require new synchronisation mechanisms.

Agreed.

cheers,
jamal


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to