Re: [PATCH] igb/ixgbe/e1000e: resolve tx multiqueue bug

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <jeffrey.t.kirsher@...>
Cc: <netdev@...>
Date: Friday, July 18, 2008 - 7:37 am

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 18 Jul 2008 04:02:25 -0700


Thanks Jeff.  I've applied this to kill the BUG() triggers you were
seeing.

Background for everyone else:

1) These drivers have a watchdog handler that watches the PHY state
   and wakes the TX queue when the link comes up.

2) Since ->open() was not doing a start queue, we would do a wake
   queue while attached to the noop_qdisc

This causes the BUG check in netif_schedule() to trigger.

After some discussion with Jeff I've advised him that it's not
kosher for the driver to manage the TX queue wake state like
this in respose to link up and down events, but rather simply
maintaining the netif_carrier state is all that is needed.

When netif_carrier_ok() is false, we're attached to the noop_qdisc
which eats all packets and frees them up, never sending them down
to the device.

When netif_carrier_ok() is true, we attach to the configured normal
qdisc and packets begin flowing to the device again.

Jeff told me he will take a look more deeply into this.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] igb/ixgbe/e1000e: resolve tx multiqueue bug, Jeff Kirsher, (Fri Jul 18, 7:02 am)
Re: [PATCH] igb/ixgbe/e1000e: resolve tx multiqueue bug, David Miller, (Fri Jul 18, 7:37 am)