[PATCH net-next 0/4] net: avoid retpoline overhead on VLAN and TEB GRO

From: Alexander Lobakin
Date: Thu Mar 18 2021 - 14:43:14 EST

dev_gro_receive() uses indirect calls for IP GRO functions, but
it works only for the outermost headers and untagged frames.
Simple VLAN tag before an IP header restores the performance hit.
This simple series straightens the GRO calls for IP headers going
after VLAN tag or inner Ethernet header (GENEVE, NvGRE, VxLAN)
for retpolined kernels.

Alexander Lobakin (4):
gro: make net/gro.h self-contained
gro: add combined call_gro_receive() + INDIRECT_CALL_INET() helper
vlan/8021q: avoid retpoline overhead on GRO
ethernet: avoid retpoline overhead on TEB (GENEVE, NvGRE, VxLAN) GRO

include/net/gro.h | 13 +++++++++++++
net/8021q/vlan_core.c | 10 ++++++++--
net/ethernet/eth.c | 11 ++++++++---
3 files changed, 29 insertions(+), 5 deletions(-)