All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context.
@ 2014-10-01 18:56 Sowmini Varadhan
  2014-10-01 19:10 ` Eric Dumazet
  2014-10-01 19:50 ` David Miller
  0 siblings, 2 replies; 22+ messages in thread
From: Sowmini Varadhan @ 2014-10-01 18:56 UTC (permalink / raw)
  To: davem, raghuram.kothakota, sowmini.varadhan; +Cc: netdev


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

^ permalink raw reply	[flat|nested] 22+ messages in thread
* [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context
@ 2014-10-01 20:24 Sowmini Varadhan
  0 siblings, 0 replies; 22+ messages in thread
From: Sowmini Varadhan @ 2014-10-01 20:24 UTC (permalink / raw)
  To: davem, raghuram.kothakota, sowmini.varadhan, david.stevens; +Cc: netdev


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().

changes since v1 to Patch 2: revert switch_port caching in struct vnet

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

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2014-10-15 14:05 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-01 18:56 [PATCH net-next 0/2] sunvnet: Packet processing in non-interrupt context Sowmini Varadhan
2014-10-01 19:10 ` 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

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.