Message ID | 5bf84d99-8f77-54ee-7543-ada13a730361@solarflare.com |
---|---|
Headers | show |
Series | Handle multiple received packets at each stage | expand |
On 7/2/18 9:11 AM, Edward Cree wrote: > This patch series adds the capability for the network stack to receive a > list of packets and process them as a unit, rather than handling each > packet singly in sequence. This is done by factoring out the existing > datapath code at each layer and wrapping it in list handling code. > ... > drivers/net/ethernet/sfc/efx.c | 12 +++ > drivers/net/ethernet/sfc/net_driver.h | 3 + > drivers/net/ethernet/sfc/rx.c | 7 +- > include/linux/list.h | 30 ++++++ > include/linux/netdevice.h | 4 + > include/linux/netfilter.h | 22 +++++ > include/net/ip.h | 2 + > include/trace/events/net.h | 7 ++ > net/core/dev.c | 174 ++++++++++++++++++++++++++++++++-- > net/ipv4/af_inet.c | 1 + > net/ipv4/ip_input.c | 114 ++++++++++++++++++++-- > 11 files changed, 360 insertions(+), 16 deletions(-) > Nice work. Have you looked at IPv6 support yet?
On 02/07/18 16:40, David Ahern wrote:
> Nice work. Have you looked at IPv6 support yet?
I hadn't looked at it yet, no. After a quick glance at ip6_rcv() and
ip6_rcv_finish(), it looks like it'd be basically the same as the IPv4
code in patches 7 and 8. I'll probably add it in a followup when (if)
this series gets applied.
-Ed
On Mon, 2018-07-02 at 09:40 -0600, David Ahern wrote: > On 7/2/18 9:11 AM, Edward Cree wrote: > > This patch series adds the capability for the network stack to receive a > > list of packets and process them as a unit, rather than handling each > > packet singly in sequence. This is done by factoring out the existing > > datapath code at each layer and wrapping it in list handling code. > > > > ... > > > drivers/net/ethernet/sfc/efx.c | 12 +++ > > drivers/net/ethernet/sfc/net_driver.h | 3 + > > drivers/net/ethernet/sfc/rx.c | 7 +- > > include/linux/list.h | 30 ++++++ > > include/linux/netdevice.h | 4 + > > include/linux/netfilter.h | 22 +++++ > > include/net/ip.h | 2 + > > include/trace/events/net.h | 7 ++ > > net/core/dev.c | 174 ++++++++++++++++++++++++++++++++-- > > net/ipv4/af_inet.c | 1 + > > net/ipv4/ip_input.c | 114 ++++++++++++++++++++-- > > 11 files changed, 360 insertions(+), 16 deletions(-) > > > > Nice work. Have you looked at IPv6 support yet? I think this work opens opportunities for a lot of follow-ups, if there is agreement on extending this approach to other areas. Onother item I'd like to investigate is TC processing. Cheers, Paolo
From: Edward Cree <ecree@solarflare.com> Date: Mon, 2 Jul 2018 16:11:36 +0100 > This patch series adds the capability for the network stack to receive a > list of packets and process them as a unit, rather than handling each > packet singly in sequence. This is done by factoring out the existing > datapath code at each layer and wrapping it in list handling code. ... This is really nice stuff. I'll apply this, but please work on the ipv6 side too. I hope that driver maintainers take a look at using the new netif_receive_skb_list() interface and see how much it helps performance with their devices. Thanks!