From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
To: davem@davemloft.net, raghuram.kothakota@oracle.com,
sowmini.varadhan@oracle.com
Cc: netdev@vger.kernel.org
Subject: [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context.
Date: Wed, 1 Oct 2014 14:56:04 -0400 [thread overview]
Message-ID: <20141001185604.GG17706@oracle.com> (raw)
The existing sunvnet implementation does all the packet interception
in LDC interrupt context. Patch 1 of this series moves the data
processing to a bottom-half handler.
Some context for the reasons for choosing a BH handler over NAPI:
A NAPI (or simple tasklet) based implementation provides softirq
context, which allows the driver to safely invoke netif_receive_skb()
to deliver the packet to the IP stack. But in the case of sunvnet,
we are already receiving multiple packets for a single ldc_rx
interrupt, so the budget-based softirq-vs-polling infra does not
provide a significant optimization. Rather, it can get in the way,
if we constrain the vnet-rx path to a poorly chosen budget, and force
ourselves to send a STOPPED/START ldc exchange needlessly.
A BH Rx handler is a simpler way to avoid the weaknesses of processing
packets in LDC interrupt context, and also provides Rx load-spreading
across multiple CPUs.
Note that PATCH 1 is dependant on the functions added as part of the
sparc-next commit "sparc64: Add vio_set_intr() to enable/disable Rx interrupts"
(Cf: http://www.spinics.net/lists/sparclinux/msg12647.html)
PATCH 2 of this series fixes a race-condition between vnet_port_remove()
and vnet_start_xmit().
Sowmini Varadhan (2):
Process Rx data packets in a BH handler
vnet_start_xmit() must hold a refcnt on port.
drivers/net/ethernet/sun/sunvnet.c | 187 +++++++++++++++++++++++++++----------
drivers/net/ethernet/sun/sunvnet.h | 12 ++-
2 files changed, 146 insertions(+), 53 deletions(-)
--
1.8.4.2
next reply other threads:[~2014-10-01 18:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-01 18:56 Sowmini Varadhan [this message]
2014-10-01 19:10 ` [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context Eric Dumazet
2014-10-01 19:50 ` David Miller
2014-10-01 19:55 ` Sowmini Varadhan
2014-10-01 20:15 ` David Miller
2014-10-01 20:23 ` Sowmini Varadhan
2014-10-01 20:25 ` David Miller
2014-10-02 20:12 ` Sowmini Varadhan
2014-10-02 20:43 ` David Miller
2014-10-03 14:40 ` Sowmini Varadhan
2014-10-03 19:08 ` David Miller
2014-10-06 16:04 ` Sowmini Varadhan
2014-10-06 19:25 ` David Miller
2014-10-06 19:31 ` Sowmini Varadhan
2014-10-06 19:37 ` David Miller
2014-10-10 1:10 ` Raghuram Kothakota
2014-10-10 4:36 ` David Miller
2014-10-10 4:56 ` Raghuram Kothakota
2014-10-10 5:03 ` David Miller
2014-10-10 5:13 ` Raghuram Kothakota
2014-10-15 14:05 ` sunvnet NAPIfication Sowmini Varadhan
-- strict thread matches above, loose matches on Subject: below --
2014-10-01 20:24 [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context Sowmini Varadhan
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=20141001185604.GG17706@oracle.com \
--to=sowmini.varadhan@oracle.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=raghuram.kothakota@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.