From patchwork Sat Jun 11 02:16:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joanne Koong X-Patchwork-Id: 12878308 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A5EFC433EF for ; Sat, 11 Jun 2022 02:17:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347736AbiFKCR4 (ORCPT ); Fri, 10 Jun 2022 22:17:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240339AbiFKCRz (ORCPT ); Fri, 10 Jun 2022 22:17:55 -0400 Received: from 69-171-232-181.mail-mxout.facebook.com (69-171-232-181.mail-mxout.facebook.com [69.171.232.181]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77CA94B1E5 for ; Fri, 10 Jun 2022 19:17:50 -0700 (PDT) Received: by devbig010.atn6.facebook.com (Postfix, from userid 115148) id C7C41D855F38; Fri, 10 Jun 2022 19:17:34 -0700 (PDT) From: Joanne Koong To: netdev@vger.kernel.org Cc: edumazet@google.com, kafai@fb.com, kuba@kernel.org, davem@davemloft.net, pabeni@redhat.com, mathew.j.martineau@linux.intel.com, Joanne Koong Subject: [PATCH net-next v3 0/3] bhash2 binding table fixups Date: Fri, 10 Jun 2022 19:16:43 -0700 Message-Id: <20220611021646.1578080-1-joannelkoong@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org There are two fix-ups related to the bhash2 binding table in this patchset: 1) Fixes an inconsistency in the bhash2 table in the case where a socket's rcv saddr changes after it is binded. 2) Fixes the case where the bhash2 hashbucket is accessed concurrently by sockets that hash to different bhash hashbuckets. To address this, the bhash2 hashbucket has its own lock. --- v2 -> v3: v2: https://lore.kernel.org/netdev/20220602165101.3188482-1-joannelkoong@gmail.com/ * Add a patch that adds bhash2 hashbucket locks v1 -> v2: v1: https://lore.kernel.org/netdev/20220601201434.1710931-1-joannekoong@fb.com/ * Mark __inet_bhash2_update_saddr as static Joanne Koong (3): net: Update bhash2 when socket's rcv saddr changes net: Add bhash2 hashbucket locks selftests/net: Add sk_bind_sendto_listen test include/net/inet_hashtables.h | 31 +++-- include/net/ipv6.h | 2 +- net/dccp/ipv4.c | 10 +- net/dccp/ipv6.c | 4 +- net/dccp/proto.c | 3 +- net/ipv4/af_inet.c | 7 +- net/ipv4/inet_connection_sock.c | 60 +++++---- net/ipv4/inet_hashtables.c | 115 +++++++++++++----- net/ipv4/tcp.c | 7 +- net/ipv4/tcp_ipv4.c | 8 +- net/ipv6/inet6_hashtables.c | 4 +- net/ipv6/tcp_ipv6.c | 4 +- tools/testing/selftests/net/.gitignore | 1 + tools/testing/selftests/net/Makefile | 1 + .../selftests/net/sk_bind_sendto_listen.c | 82 +++++++++++++ 15 files changed, 251 insertions(+), 88 deletions(-) create mode 100644 tools/testing/selftests/net/sk_bind_sendto_listen.c