From: Roland Dreier <rdreier@cisco.com>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, shemminger@linux-foundation.org,
jgarzik@pobox.com, hadi@cyberus.ca, rusty@rustcorp.com.au
Subject: Re: [PATCH RFC]: napi_struct V4
Date: Mon, 30 Jul 2007 08:04:24 -0700 [thread overview]
Message-ID: <ada7ioiszk7.fsf@cisco.com> (raw)
In-Reply-To: <20070728.223206.112621083.davem@davemloft.net> (David Miller's message of "Sat, 28 Jul 2007 22:32:06 -0700 (PDT)")
> If you have a means in the device (like tg3, bnx2, e1000, and a score
> of others do) to force the device to trigger a HW interrupt, that's
> what you do if you detect that events are pending after re-enabling
> interrupt in the ->poll() handler.
It is possible to trigger an interrupt for IPoIB I think but it will
lead to a fair bit of code, since one would have to do something like
a dummy send operation to generate an event that leads to the
interrupt. I think this will be rather complex/ugly to implement
because we have to make sure we have space in the send queue to post
the send operation, etc.
> Frankly I don't think the lock is a big deal and you need something
> like it anyways typically.
If I understand this correctly, you're suggesting a spin_lock_irqsave()
around the netif_rx_complete() in the poll routine, and a
corresponding lock in the interrupt handler. That seems like a pretty
big step backwards for performance to me. Especially since in my
experience, fast machines handling full-MTU traffic often end up being
basically interrupt driven because they drain the RX ring too quickly
to stay in NAPI polling. Yes, it's "only one more lock" but look at
the tricky smp_mb() usage that tg3, bnx2, etc have to avoid using a
spinlock...
IPoIB can cope but it really seems like an unfortunate feature of
these changes that we can't do something like what we have today,
which imposes no overhead unless an event actually lands in the race
window.
- R.
next prev parent reply other threads:[~2007-07-30 15:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-25 8:31 [PATCH RFC]: napi_struct V4 David Miller
2007-07-25 8:56 ` Stephen Hemminger
2007-07-26 0:37 ` David Miller
2007-07-26 1:55 ` Jeff Garzik
2007-07-26 1:56 ` David Miller
2007-07-26 2:00 ` Jeff Garzik
2007-07-26 2:02 ` David Miller
2007-07-28 18:08 ` Jeff Garzik
2007-07-29 5:33 ` David Miller
2007-07-25 12:01 ` jamal
2007-07-26 4:09 ` David Miller
2007-07-26 6:33 ` Michael Chan
2007-07-26 6:38 ` David Miller
2007-07-26 7:05 ` Michael Chan
2007-07-26 7:15 ` David Miller
2007-07-26 21:38 ` Michael Chan
2007-07-31 0:25 ` David Miller
2007-07-26 6:39 ` Michael Chan
2007-07-26 6:43 ` David Miller
2007-07-28 15:27 ` Roland Dreier
2007-07-29 5:32 ` David Miller
2007-07-30 15:04 ` Roland Dreier [this message]
2007-07-30 22:48 ` David Miller
2007-07-31 2:01 ` Roland Dreier
2007-07-31 2:03 ` David Miller
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=ada7ioiszk7.fsf@cisco.com \
--to=rdreier@cisco.com \
--cc=davem@davemloft.net \
--cc=hadi@cyberus.ca \
--cc=jgarzik@pobox.com \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=shemminger@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).