Thread (60 messages) 60 messages, 9 authors, 2007-07-08

RE: [PATCH 2/3] NET: [CORE] Stack changes to add multiqueue hardware support API

From: Waskiewicz Jr, Peter P <hidden>
Date: 2007-06-28 19:06:43

Waskiewicz Jr, Peter P wrote:
quoted
quoted
Quick question: where are the sch_generic changes? :)

If you hold for ten minutes I'll post a set of slightly changed 
patches with the NETDEVICES_MULTIQUEUE option and a fix for this.

Jamal's and KK's qdisc_restart() rewrite took the 
netif_queue_stopped()
quoted
call out of sch_generic.c.  So the underlying qdisc is only 
responsible
quoted
for checking the queue status now before dequeueing.

Yes, I noticed that now. Doesn't seem right though as long as
queueing while queue is stopped is treated as a bug by the
drivers.

But I vaguely recall seeing a discussion about this, I'll check
the archives.
The basic gist is before the dequeue is done, the qdisc is locked by the
qdisc is running bit, so another CPU cannot get in there.  So if the
queue isn't stopped when a dequeue is done, that same queue should not
be stopped when hard_start_xmit() is called.  The only thing I could
think of that could happen is some out-of-band cleanup routine in the
driver where the tx_ring lock is held, and the skb is bounced back,
where the driver returns NETIF_TX_BUSY, and you requeue.  This is an
extreme corner case, so the check could be removed.

-PJ
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help