Thread (26 messages) 26 messages, 5 authors, 2014-03-15

RE: [net-next 01/16] ixgbe: add check for netif_carrier_ok in ixgbe_xmit_frame

flat view

From: Tantilov, Emil S <hidden>
Date: 2014-03-15 00:24:02

-----Original Message-----
From: Ben Hutchings [mailto:<redacted>]
Sent: Friday, March 14, 2014 5:19 PM
To: David Miller
Cc: Tantilov, Emil S; Kirsher, Jeffrey T;
netdev@vger.kernel.org; gospo@redhat.com;
sassmann@redhat.com; asharma@fb.com; stable@vger.kernel.org
Subject: Re: [net-next 01/16] ixgbe: add check for
netif_carrier_ok in ixgbe_xmit_frame

On Fri, 2014-03-14 at 17:51 -0400, David Miller wrote:
quoted
From: "Tantilov, Emil S" <redacted>
Date: Fri, 14 Mar 2014 20:19:38 +0000
quoted
That would work, but what if there are other callers of
ndo_start_xmit that don't have this check? Handling this in the
driver takes care of all instances.
netif_carrier_off() is supposed to stop traffic from flowing to
the device.

The qdisc layer should be honoring this property, and my
suspicion is that it is just netpoll operates in the unique
environment that doesn't.
There is no check for netif_carrier_ok() in the qdisc transmit path.
Instead netif_carrier_off() eventually causes link_watch to call
dev_deactivate() which installs the noop qdisc.

It does seem like transmitters that bypass the qdisc should
be checking netif_carrier_ok(), but drivers must also accept that the
effect of netif_carrier_off() is not immediate.

Maybe ixgbe is not calling netif_stop_all_queues() at quite
the right time?
You're probably right. I'm looking into it.

Thanks,
Emil
Ben.

--
Ben Hutchings
When you say `I wrote a program that crashed Windows',
people just stare ...
and say `Hey, I got those with the system, *for free*'. -
Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help