From patchwork Mon May 4 08:06:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Westphal X-Patchwork-Id: 219998 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=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=no 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 3C98BC3A5A9 for ; Mon, 4 May 2020 08:06:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 12D1020643 for ; Mon, 4 May 2020 08:06:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728115AbgEDIGW (ORCPT ); Mon, 4 May 2020 04:06:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726750AbgEDIGW (ORCPT ); Mon, 4 May 2020 04:06:22 -0400 Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [IPv6:2a0a:51c0:0:12e:520::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB536C061A0E for ; Mon, 4 May 2020 01:06:21 -0700 (PDT) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1jVW7H-00065O-BP; Mon, 04 May 2020 10:06:19 +0200 From: Florian Westphal To: steffen.klassert@secunet.com Cc: Subject: [PATCH ipsec-next v2 0/7] xfrm: remove three more indirect calls from packet path Date: Mon, 4 May 2020 10:06:02 +0200 Message-Id: <20200504080609.14648-1-fw@strlen.de> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org v2: rebase on top of ipsec-next, no other changes. This patch series removes three more indirect calls from the state_afinfo struct. These are: - extract_input (no dependencies on other modules) - output_finish (same) - extract_output (has dependency on ipv6 module, but that is only needed for pmtu detection, so the indirect call cost is not required for each packet). Functions get moved to net/xfrm and the indirections are removed. pmtu detection will be handled via ipv6_stubs. Florian Westphal (7): xfrm: avoid extract_output indirection for ipv4 xfrm: state: remove extract_input indirection from xfrm_state_afinfo xfrm: move xfrm4_extract_header to common helper xfrm: expose local_rxpmtu via ipv6_stubs xfrm: place xfrm6_local_dontfrag in xfrm.h xfrm: remove extract_output indirection from xfrm_state_afinfo xfrm: remove output_finish indirection from xfrm_state_afinfo include/net/ipv6_stubs.h | 1 + include/net/xfrm.h | 26 ++++++---- net/ipv4/xfrm4_input.c | 5 -- net/ipv4/xfrm4_output.c | 63 +---------------------- net/ipv4/xfrm4_state.c | 24 --------- net/ipv6/af_inet6.c | 1 + net/ipv6/xfrm6_input.c | 5 -- net/ipv6/xfrm6_output.c | 98 ++--------------------------------- net/ipv6/xfrm6_state.c | 26 ---------- net/xfrm/xfrm_inout.h | 32 ++++++++++++ net/xfrm/xfrm_input.c | 21 ++++---- net/xfrm/xfrm_output.c | 129 ++++++++++++++++++++++++++++++++++++++++++++--- 12 files changed, 188 insertions(+), 243 deletions(-)