Netdev List
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: jeffrey.t.kirsher@intel.com
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH] igb/ixgbe/e1000e: resolve tx multiqueue bug
Date: Fri, 18 Jul 2008 04:37:08 -0700 (PDT)	[thread overview]
Message-ID: <20080718.043708.19461520.davem@davemloft.net> (raw)
In-Reply-To: <20080718110225.20696.14881.stgit@localhost.localdomain>

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

> With the recent changes to tx mutiqueue, igb/ixgbe/e1000e was not calling
> netif_tx_start_all_queues() before calling netif_tx_wake_all_queues().
> This causes an issue during loading of the driver.
> 
> In addition, updated e1000e to use the updated tx mutliqueue api.
> 
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

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.


      reply	other threads:[~2008-07-18 11:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-18 11:02 [PATCH] igb/ixgbe/e1000e: resolve tx multiqueue bug Jeff Kirsher
2008-07-18 11:37 ` David Miller [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080718.043708.19461520.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox