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=-16.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham 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 E73B2C43381 for ; Tue, 26 Feb 2019 17:49:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B94CE2173C for ; Tue, 26 Feb 2019 17:49:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="fltdfPng" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728859AbfBZRtc (ORCPT ); Tue, 26 Feb 2019 12:49:32 -0500 Received: from mail-pg1-f201.google.com ([209.85.215.201]:46247 "EHLO mail-pg1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727624AbfBZRtc (ORCPT ); Tue, 26 Feb 2019 12:49:32 -0500 Received: by mail-pg1-f201.google.com with SMTP id f10so10083998pgp.13 for ; Tue, 26 Feb 2019 09:49:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=23dYV+NO5dXhOI6rE5ZnPmOUzhiY6OZa299OqIAKrTI=; b=fltdfPngssvlMVF3uyc1uccybsMmvwphjJcM+MUPagOOwXUy3B2Lh2LSDEmrWj7RIl xAuclQKw7IB/zxJbReePYNoAvf994ojcwhBWckJyeVqWBaG2PfIBdS9ED353nJbm9vXS g3EYxU1SwBeYLDPVBnNCebI4MP/EEVOsctIDN8ndx0oc5n6/JHlJTHBXzHePm9C+N8GO mmEDfCpRGAMxJDL5fHfk9sjRqWjKNhoKk8v4dKQB3PzIt38ttvSCYymxZRAgNlbL/f9B pyoN3pG4luJC/JAyJsnr9sBPWUSfKMMt1OgdFNJiA3XktlxKkWSdxyigVaAgIAgRDX4N 8Tdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=23dYV+NO5dXhOI6rE5ZnPmOUzhiY6OZa299OqIAKrTI=; b=fKrSkzwaewcDuKx+TLBJuBzU1lG0uPXv+RA6uMLwsfh/WYcw4/pwKfbEH0LkTw3f/z AY4maZwsfxl4x2V0JIWM5tMu04gy9gFE62JPSjSIc4PvPi32j7Ftx+6dpB+OD+48rZRe NnJRnnAEv1OxBppbN/lYrrOOmZ4smHZMQ9U83xiNzD6zfeX7Ch26UEMZLBzzYClzjkXy Ev1hZDp8kyVo9y8VaXG3JBqm5FYlhci18Y20S5/1M7Dg8t+TRFfmL2Hazja31bM/6Lgy hOg4qfTxx52/G3YALj+/GYAQCr+6/g1G5HHsBZ/l3VdpXvFkfA10kj6Cs+fI/Iwxmar2 0hsQ== X-Gm-Message-State: AHQUAuY4DDFuOJnT+i0iJvunPsIIeMExnWyzfQrDKNqE+OL7u61nq+Ay j2PJ65XEtf8zp/mxixnoUupk2JlnCS2MiQ== X-Google-Smtp-Source: AHgI3Iab9x85KW6q0u1+GME1QRduv/J50F1Et3qUs0cBJ91vDNO6BQ81e5IBvtkyQqHpg2rsbSokCSRvWY6MXw== X-Received: by 2002:a65:5c8b:: with SMTP id a11mr9114677pgt.32.1551203371036; Tue, 26 Feb 2019 09:49:31 -0800 (PST) Date: Tue, 26 Feb 2019 09:49:12 -0800 In-Reply-To: <20190226174913.18824-1-edumazet@google.com> Message-Id: <20190226174913.18824-5-edumazet@google.com> Mime-Version: 1.0 References: <20190226174913.18824-1-edumazet@google.com> X-Mailer: git-send-email 2.21.0.rc2.261.ga7da99ff1b-goog Subject: [PATCH net-next 4/5] tcp: use tcp_md5_needed for timewait sockets From: Eric Dumazet To: "David S . Miller" Cc: netdev , Eric Dumazet , Eric Dumazet Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This might speedup tcp_twsk_destructor() a bit, avoiding a cache line miss. Signed-off-by: Eric Dumazet --- net/ipv4/tcp_minisocks.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 182595e2d40ff5b48cd6d095d4bd97b4cb26d3c0..79900f783e0d8a713712b0bf47700f16eebab4db 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -294,12 +294,15 @@ void tcp_time_wait(struct sock *sk, int state, int timeo) * so the timewait ack generating code has the key. */ do { - struct tcp_md5sig_key *key; tcptw->tw_md5_key = NULL; - key = tp->af_specific->md5_lookup(sk, sk); - if (key) { - tcptw->tw_md5_key = kmemdup(key, sizeof(*key), GFP_ATOMIC); - BUG_ON(tcptw->tw_md5_key && !tcp_alloc_md5sig_pool()); + if (static_branch_unlikely(&tcp_md5_needed)) { + struct tcp_md5sig_key *key; + + key = tp->af_specific->md5_lookup(sk, sk); + if (key) { + tcptw->tw_md5_key = kmemdup(key, sizeof(*key), GFP_ATOMIC); + BUG_ON(tcptw->tw_md5_key && !tcp_alloc_md5sig_pool()); + } } } while (0); #endif @@ -338,10 +341,12 @@ EXPORT_SYMBOL(tcp_time_wait); void tcp_twsk_destructor(struct sock *sk) { #ifdef CONFIG_TCP_MD5SIG - struct tcp_timewait_sock *twsk = tcp_twsk(sk); + if (static_branch_unlikely(&tcp_md5_needed)) { + struct tcp_timewait_sock *twsk = tcp_twsk(sk); - if (twsk->tw_md5_key) - kfree_rcu(twsk->tw_md5_key, rcu); + if (twsk->tw_md5_key) + kfree_rcu(twsk->tw_md5_key, rcu); + } #endif } EXPORT_SYMBOL_GPL(tcp_twsk_destructor); -- 2.21.0.rc2.261.ga7da99ff1b-goog