netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@intel.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: "Ronciak, John" <john.ronciak@intel.com>,
	"Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>,
	"Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
	"Allan, Bruce W" <bruce.w.allan@intel.com>,
	"Wyborny, Carolyn" <carolyn.wyborny@intel.com>,
	"Skidmore, Donald C" <donald.c.skidmore@intel.com>,
	"Rose, Gregory V" <gregory.v.rose@intel.com>,
	"Duyck, Alexander H" <alexander.h.duyck@intel.com>,
	"Dave, Tushar N" <tushar.n.dave@intel.com>,
	"e1000-devel@lists.sourceforge.net"
	<e1000-devel@lists.sourceforge.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: e1000e on thinkpad x60: interrupt problem
Date: Tue, 9 Jul 2013 17:15:48 +0000	[thread overview]
Message-ID: <1373390146.4286.1.camel@ppwaskie-mobl2> (raw)
In-Reply-To: <20130709170242.GA14112@amd.pavel.ucw.cz>

On Tue, 2013-07-09 at 19:02 +0200, Pavel Machek wrote:
> Hi!
> 
> > Nothing appears to be wrong.  If the system is seeing ping packets
> >at all means that device is generating interrupts and that they are
> >being processed.  If you are looking at performance then sharing
> 
> No, that's not true. There is other interrupt load, and e1000e has big
> enough buffers; that means that packets eventually get processed. I
> strongly suspect e1000e generates little or no interrupts and packets
> only get processed when other devices on shared interrupt line
> generate interrupt. 

If the interrupt is shared, e1000e checks if it's the hardware that
generated it before processing packets.  Consuming an interrupt that
isn't meant for this device will throw major warnings in the kernel
about bad interrupt routing, etc.  Here's the code from the interrupt
handler (note the last part of the pasted code):

/**
 * e1000_intr - Interrupt Handler
 * @irq: interrupt number
 * @data: pointer to a network interface device structure
 **/
static irqreturn_t e1000_intr(int __always_unused irq, void *data)
{
        struct net_device *netdev = data;
        struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
        u32 rctl, icr = er32(ICR);

        if (!icr || test_bit(__E1000_DOWN, &adapter->state))
                return IRQ_NONE;  /* Not our interrupt */

        /* IMS will not auto-mask if INT_ASSERTED is not set, and if it
is
         * not set, then the adapter didn't send an interrupt
         */
        if (!(icr & E1000_ICR_INT_ASSERTED))
                return IRQ_NONE;

Cheers,
-PJ

  reply	other threads:[~2013-07-09 17:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-09  1:05 e1000e on thinkpad x60: interrupt problem Pavel Machek
2013-07-09 15:51 ` Ronciak, John
2013-07-09 17:02   ` Pavel Machek
2013-07-09 17:15     ` Waskiewicz Jr, Peter P [this message]
2013-07-09 20:48       ` Pavel Machek
2013-07-09 20:59         ` Ronciak, John
2013-07-09 21:40         ` Jesse Brandeburg
2013-07-10  3:43           ` [E1000-devel] " Fujinaka, Todd
2013-07-10 11:37           ` Pavel Machek

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=1373390146.4286.1.camel@ppwaskie-mobl2 \
    --to=peter.p.waskiewicz.jr@intel.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=bruce.w.allan@intel.com \
    --cc=carolyn.wyborny@intel.com \
    --cc=donald.c.skidmore@intel.com \
    --cc=e1000-devel@lists.sourceforge.net \
    --cc=gregory.v.rose@intel.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=john.ronciak@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=tushar.n.dave@intel.com \
    /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;
as well as URLs for NNTP newsgroup(s).