OSDN Git Service

Merge branch 'skbuff-micro-optimize-flow-dissection'
authorDavid S. Miller <davem@davemloft.net>
Sun, 14 Mar 2021 21:48:26 +0000 (14:48 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 14 Mar 2021 21:48:26 +0000 (14:48 -0700)
commitc6baf7eeb0cf82f6a90a703f6548250fc85cfdcc
treec6bf285f9bd54f1a0b57d604226f34895f4034f2
parent3f79eb3c3a6abaa8f9900b5e40994060d7341cbc
parentd206121faf8bb2239cd970af0bd32f5203780427
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>