diff options
author | David S. Miller <davem@davemloft.net> | 2021-03-14 14:48:26 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-03-14 14:48:26 -0700 |
commit | c6baf7eeb0cf82f6a90a703f6548250fc85cfdcc (patch) | |
tree | c6bf285f9bd54f1a0b57d604226f34895f4034f2 /include/linux/etherdevice.h | |
parent | 3f79eb3c3a6abaa8f9900b5e40994060d7341cbc (diff) | |
parent | d206121faf8bb2239cd970af0bd32f5203780427 (diff) | |
download | linux-c6baf7eeb0cf82f6a90a703f6548250fc85cfdcc.tar.gz linux-c6baf7eeb0cf82f6a90a703f6548250fc85cfdcc.tar.bz2 linux-c6baf7eeb0cf82f6a90a703f6548250fc85cfdcc.zip |
Merge branch 'skbuff-micro-optimize-flow-dissection'
Alexander Lobakin says:
====================
skbuff: micro-optimize flow dissection
This little number makes all of the flow dissection functions take
raw input data pointer as const (1-5) and shuffles the branches in
__skb_header_pointer() according to their hit probability.
The result is +20 Mbps per flow/core with one Flow Dissector pass
per packet. This affects RPS (with software hashing), drivers that
use eth_get_headlen() on their Rx path and so on.
From v2 [1]:
- reword some commit messages as a potential fix for NIPA;
- no functional changes.
From v1 [0]:
- rebase on top of the latest net-next. This was super-weird, but
I double-checked that the series applies with no conflicts, and
then on Patchwork it didn't;
- no other changes.
[0] https://lore.kernel.org/netdev/20210312194538.337504-1-alobakin@pm.me
[1] https://lore.kernel.org/netdev/20210313113645.5949-1-alobakin@pm.me
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/etherdevice.h')
-rw-r--r-- | include/linux/etherdevice.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 2e5debc0373c..330345b1be54 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h @@ -11,7 +11,7 @@ * Authors: Ross Biro * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> * - * Relocated to include/linux where it belongs by Alan Cox + * Relocated to include/linux where it belongs by Alan Cox * <gw4pts@gw4pts.ampr.org> */ #ifndef _LINUX_ETHERDEVICE_H @@ -29,7 +29,7 @@ struct device; int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr); unsigned char *arch_get_platform_mac_address(void); int nvmem_get_mac_address(struct device *dev, void *addrbuf); -u32 eth_get_headlen(const struct net_device *dev, void *data, unsigned int len); +u32 eth_get_headlen(const struct net_device *dev, const void *data, u32 len); __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev); extern const struct header_ops eth_header_ops; |