Thread (4 messages) flat view 4 messages, 2 authors, 2012-01-19

Re: problem with noop and pfifo_fast Qdisc switching

From: Eric Dumazet <hidden>
Date: 2012-01-19 13:15:37

Le jeudi 19 janvier 2012 à 13:47 +0100, Hemant-vilas RAMDASI a écrit :
Hi,

I have a situation where one of important message (phonet pipe message) gets dropped because of 'noop' Qdisc.
This situation mostly happens when coming out of sleep and there is a message to send.
What I have observed is this.
In normal case the qdisc used id pfifo_fast. When CPU goes to sleep, it changes the qdisc to noop.
When CPU wakes up (because of a message from lower layers), phonet tries to send a control packet to driver and finds qdisc is still 'noop'. 
Because the concerned message is a control message, this packet drop is creating deadlock situation.

How the switch between pfifo_fast and noop is handled? Is this something solved in 3.0?
We are running a older version of kernel (2.6.35 based).
If message is important, you should check return code from xmit
(NET_XMIT_CN is returned by noop_enqueue), and maybe resend it later.

Not sure by what you mean by 'cpu goes to sleep' or 'cpu wakes up' ?

Is it the machine going to suspend mode ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help