Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp6596423ybi; Wed, 29 May 2019 10:02:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqzO5N+o8FAyc0kDIbrEnBffiKUoiwbISEcJkXDvcwG63bk3mwczD5Ni3Sfd8mG8UNgfEVLa X-Received: by 2002:a17:90a:32c1:: with SMTP id l59mr13650448pjb.1.1559149370407; Wed, 29 May 2019 10:02:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559149370; cv=none; d=google.com; s=arc-20160816; b=QUDgeQcOakHIDgbXciaKDpuG98DlkIIJDVOWj2IBR79szG4Jtxbb5cmai7OcXpTQ94 DfUyCRfnqp1Q9tbdyk0khKk7izJZDKGFFmu2t1jHae8tIM7GsT/BI+SJrhjV74yHNE18 pFnIedcjc+LvfbTyO7sKTG3EvU7RFZ58LHDkIdxDqqw77CfsVjSGe0ywbiy5kvca7Yh2 KbDKwLK9J+Mqv3g/Kb24dBuuWY2gOxxwMj8XbDR4LMF5lharcGTW9DXGaEGnWlRBKRjn OTSc/FMgkkml6J8W4IYBPpx8+jJWk0W2BfozbIiO38X4VK78+FgWZFQud/xWU/DSXPdJ iHEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=GRKcPaf/HEf0ZDUDmTduGB5wdY6Y6gaCi0gYR5G7KDo=; b=kYgED9arEnF2hMZKEcnP0HsxtKgFU5+34CAIrIj3CZvogrhjLVFNgTCsWuiExOCbMV TJjRfaQk5iNcCKL4j8Q/+8h6ZhiIqMx2R/aWuV36qomb+XqllPf+Cp3soH6KB7UbXFcr hpihwkEurT81+nemTUBXust6olmO2HjQr0zHwTz/Ruy6r1Zi3S7QPzW7JbBd9zXD4cc8 SXz1LIAKXZznvvq+vCUfhCNW5I4T/Z6WYDZSnlPZY7VFnXQKtVMDnYYyTd8PyhpiJ4Is 8VEz6xt7rXwjetw9XQttQZ/5oGic5EVLEhbg1AyaCOmJHrYT7c6cfoJwRTvCbRtx7oV/ Cphg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h4si100487plr.24.2019.05.29.10.02.31; Wed, 29 May 2019 10:02:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726699AbfE2Q7m (ORCPT + 99 others); Wed, 29 May 2019 12:59:42 -0400 Received: from charlotte.tuxdriver.com ([70.61.120.58]:50967 "EHLO smtp.tuxdriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725948AbfE2Q7m (ORCPT ); Wed, 29 May 2019 12:59:42 -0400 Received: from cpe-2606-a000-111b-405a-0-0-0-162e.dyn6.twc.com ([2606:a000:111b:405a::162e] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1hW1vJ-0002nK-FP; Wed, 29 May 2019 12:59:39 -0400 Date: Wed, 29 May 2019 12:59:06 -0400 From: Neil Horman To: Matteo Croce Cc: linux-sctp@vger.kernel.org, netdev@vger.kernel.org, Vlad Yasevich , Marcelo Ricardo Leitner , linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next] sctp: deduplicate identical skb_checksum_ops Message-ID: <20190529165906.GD31099@hmswarspite.think-freely.org> References: <20190529153941.12166-1-mcroce@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190529153941.12166-1-mcroce@redhat.com> User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Score: -2.9 (--) X-Spam-Status: No Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 29, 2019 at 05:39:41PM +0200, Matteo Croce wrote: > The same skb_checksum_ops struct is defined twice in two different places, > leading to code duplication. Declare it as a global variable into a common > header instead of allocating it on the stack on each function call. > bloat-o-meter reports a slight code shrink. > > add/remove: 1/1 grow/shrink: 0/10 up/down: 128/-1282 (-1154) > Function old new delta > sctp_csum_ops - 128 +128 > crc32c_csum_ops 16 - -16 > sctp_rcv 6616 6583 -33 > sctp_packet_pack 4542 4504 -38 > nf_conntrack_sctp_packet 4980 4926 -54 > execute_masked_set_action 6453 6389 -64 > tcf_csum_sctp 575 428 -147 > sctp_gso_segment 1292 1126 -166 > sctp_csum_check 579 412 -167 > sctp_snat_handler 957 772 -185 > sctp_dnat_handler 1321 1132 -189 > l4proto_manip_pkt 2536 2313 -223 > Total: Before=359297613, After=359296459, chg -0.00% > > Reviewed-by: Xin Long > Signed-off-by: Matteo Croce > --- > include/net/sctp/checksum.h | 12 +++++++----- > net/sctp/offload.c | 7 +------ > 2 files changed, 8 insertions(+), 11 deletions(-) > > diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h > index 314699333bec..5a9bb09f32b6 100644 > --- a/include/net/sctp/checksum.h > +++ b/include/net/sctp/checksum.h > @@ -43,19 +43,21 @@ static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2, > (__force __u32)csum2, len); > } > > +static const struct skb_checksum_ops sctp_csum_ops = { > + .update = sctp_csum_update, > + .combine = sctp_csum_combine, > +}; > + > static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, > unsigned int offset) > { > struct sctphdr *sh = (struct sctphdr *)(skb->data + offset); > - const struct skb_checksum_ops ops = { > - .update = sctp_csum_update, > - .combine = sctp_csum_combine, > - }; > __le32 old = sh->checksum; > __wsum new; > > sh->checksum = 0; > - new = ~__skb_checksum(skb, offset, skb->len - offset, ~(__wsum)0, &ops); > + new = ~__skb_checksum(skb, offset, skb->len - offset, ~(__wsum)0, > + &sctp_csum_ops); > sh->checksum = old; > > return cpu_to_le32((__force __u32)new); > diff --git a/net/sctp/offload.c b/net/sctp/offload.c > index edfcf16e704c..dac46dfadab5 100644 > --- a/net/sctp/offload.c > +++ b/net/sctp/offload.c > @@ -103,11 +103,6 @@ static const struct net_offload sctp6_offload = { > }, > }; > > -static const struct skb_checksum_ops crc32c_csum_ops = { > - .update = sctp_csum_update, > - .combine = sctp_csum_combine, > -}; > - > int __init sctp_offload_init(void) > { > int ret; > @@ -120,7 +115,7 @@ int __init sctp_offload_init(void) > if (ret) > goto ipv4; > > - crc32c_csum_stub = &crc32c_csum_ops; > + crc32c_csum_stub = &sctp_csum_ops; > return ret; > > ipv4: > -- > 2.21.0 > > Acked-by: Neil Horman