RE: problem with noop and pfifo_fast Qdisc switching
From: Hemant-vilas RAMDASI <hidden>
Date: 2012-01-19 13:44:59
Hi,
-----Original Message----- From: Eric Dumazet [mailto:eric.dumazet@gmail.com] Sent: Thursday, January 19, 2012 6:46 PM To: Hemant-vilas RAMDASI Cc: netdev@vger.kernel.org; netdev-owner@vger.kernel.org Subject: Re: problem with noop and pfifo_fast Qdisc switching Le jeudi 19 janvier 2012 à 13:47 +0100, Hemant-vilas RAMDASI a écrit :quoted
Hi, I have a situation where one of important message (phonet pipemessage) gets dropped because of 'noop' Qdisc.quoted
This situation mostly happens when coming out of sleep and there is amessage to send.quoted
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.quoted
When CPU wakes up (because of a message from lower layers), phonettries to send a control packet to driver and finds qdisc is still 'noop'.quoted
Because the concerned message is a control message, this packet dropis creating deadlock situation.quoted
How the switch between pfifo_fast and noop is handled? Is thissomething solved in 3.0?quoted
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 ?
Yes, I mean machine going to suspend.. The problem with this message is that it can be retried only a couple of time. We saw a code where dev_deactivate is called which changes the Qdisc to 'noop'. I hope it will restore it in dev_activate() again when machine resumes. We are checking this. Is there any race between when dev_queue_xmit is called and dev_activate is still not complete? Thanks, Hemant