From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C67EC43381 for ; Thu, 18 Mar 2021 18:43:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0B68364F3B for ; Thu, 18 Mar 2021 18:43:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232523AbhCRSmm (ORCPT ); Thu, 18 Mar 2021 14:42:42 -0400 Received: from mail1.protonmail.ch ([185.70.40.18]:47957 "EHLO mail1.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232494AbhCRSm0 (ORCPT ); Thu, 18 Mar 2021 14:42:26 -0400 Date: Thu, 18 Mar 2021 18:42:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1616092944; bh=RWcHWkX72BpuDYzZ08uRHn5rh75TT354Si0UcCXl5bM=; h=Date:To:From:Cc:Reply-To:Subject:From; b=JGb9Dek/wtBRJlXX2AKbbZ9HObgopvd0FQC6vRYmU4zTAPGEnnyqBYbcfr/YjYt9A tQg6cnSsuUBiF/Elxk0hA4LQVOsAwdGaI7tIFrcEoVPbqddEY4YizR49U0FphPscfr kzz1cWmTMKejqWI3h6tfwpvUb2V/C1rd6SBAgRVrkLFeiuGBICvzc3ULtMIPDYB/Hk vM37tvnXWXHa5s4tsf0taIS7wQ5oKdBIt5eS+jyPVp3xmB8TpgylORNXwbYaSaxOZ1 CkCQ+QUxJSaW6jhsmpGvS15J/HdmZNt2sHgSZLvo24/0mXfQM9Iv5sX/72Nf3nd+Cz nuByuUulN8cRg== To: "David S. Miller" , Jakub Kicinski From: Alexander Lobakin Cc: Alexander Lobakin , Mauro Carvalho Chehab , Kirill Tkhai , Bartosz Golaszewski , Leon Romanovsky , Eric Dumazet , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Reply-To: Alexander Lobakin Subject: [PATCH net-next 0/4] net: avoid retpoline overhead on VLAN and TEB GRO Message-ID: <20210318184157.700604-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(-) -- 2.31.0