[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9BBC4E0CF881AA4299206E2E1412B62630D8B289@ORSMSX102.amr.corp.intel.com>
Date: Thu, 2 Aug 2012 16:10:12 +0000
From: "Wyborny, Carolyn" <carolyn.wyborny@...el.com>
To: Eric Dumazet <eric.dumazet@...il.com>,
"Kirsher, Jeffrey T" <jeffrey.t.kirsher@...el.com>
CC: "Duyck, Alexander H" <alexander.h.duyck@...el.com>,
netdev <netdev@...r.kernel.org>
Subject: RE: [PATCH net-next] igb: use build_skb()
-----Original Message-----
From: netdev-owner@...r.kernel.org [mailto:netdev-owner@...r.kernel.org] On Behalf Of Eric Dumazet
Sent: Thursday, August 02, 2012 8:52 AM
To: Kirsher, Jeffrey T
Cc: Duyck, Alexander H; netdev
Subject: [PATCH net-next] igb: use build_skb()
From: Eric Dumazet <edumazet@...gle.com>
By using netdev_alloc_frag() & build_skb() instead of legacy
netdev_alloc_skb_ip_align() calls, we reduce number of cache misses in RX path and size of working set.
For a given rx workload, number of 'inuse' sk_buff can be reduced to a very minimum, especially when packets are dropped by our stack.
(Before this patch, default sk_buff allocation was 2048 sk_buffs in rx ring buffer)
They are initialized right before being delivered to stack, so can stay hot in cpu caches.
Ethernet header prefetching is more effective (old prefetch of skb->data paid a stall to access skb->data pointer)
I have 15% performance increase in a RX stress test, removing SLUB slow path in the profiles.
Signed-off-by: Eric Dumazet <edumazet@...gle.com>
Cc: Alexander Duyck <alexander.h.duyck@...el.com>
---
Thanks Eric,
We've been working on some more extensive performance refactoring that will be coming in addition to this.
Jeff will pull these patches into his tree for testing.
Carolyn
Carolyn Wyborny
Linux Development
LAN Access Division
Intel Corporation
Powered by blists - more mailing lists