diff options
| author | David S. Miller <davem@davemloft.net> | 2016-02-11 11:59:17 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-02-11 11:59:17 -0500 |
| commit | 3134b9f019f2604f05fd65a2c2d4e57193f7ddfb (patch) | |
| tree | 7fdc4e1261b759cb4ba9ab362ae41d8639d9c55f /include/linux | |
| parent | 18ac5590e9e37a423c4d26a83b657fcf2b832d5a (diff) | |
| parent | a3a8749d34d8a5ac071c7ead792bd21ffe328aa0 (diff) | |
Merge branch 'net-mitigate-kmem_free-slowpath'
Jesper Dangaard Brouer says:
====================
net: mitigating kmem_cache free slowpath
This patchset is the first real use-case for kmem_cache bulk _free_.
The use of bulk _alloc_ is NOT included in this patchset. The full use
have previously been posted here [1].
The bulk free side have the largest benefit for the network stack
use-case, because network stack is hitting the kmem_cache/SLUB
slowpath when freeing SKBs, due to the amount of outstanding SKBs.
This is solved by using the new API kmem_cache_free_bulk().
Introduce new API napi_consume_skb(), that hides/handles bulk freeing
for the caller. The drivers simply need to use this call when freeing
SKBs in NAPI context, e.g. replacing their calles to dev_kfree_skb() /
dev_consume_skb_any().
Driver ixgbe is the first user of this new API.
[1] http://thread.gmane.org/gmane.linux.network/384302/focus=397373
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/skbuff.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index a8fc2220e8ce..6ec86f1a2ed9 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -2404,6 +2404,10 @@ static inline struct sk_buff *napi_alloc_skb(struct napi_struct *napi, { return __napi_alloc_skb(napi, length, GFP_ATOMIC); } +void napi_consume_skb(struct sk_buff *skb, int budget); + +void __kfree_skb_flush(void); +void __kfree_skb_defer(struct sk_buff *skb); /** * __dev_alloc_pages - allocate page for network Rx |
