From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [PATCH][net-next][v2] net: convert gro_count to bitmask Date: Mon, 16 Jul 2018 16:40:52 -0700 Message-ID: <80f69d24-bf80-c8ac-7d16-a8d6b91e2448@gmail.com> References: <1531464096-11319-1-git-send-email-lirongqing@baidu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: edumazet@google.com, sbrivio@redhat.com To: Li RongQing , netdev@vger.kernel.org Return-path: Received: from mail-pf0-f195.google.com ([209.85.192.195]:33173 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729245AbeGQAKf (ORCPT ); Mon, 16 Jul 2018 20:10:35 -0400 Received: by mail-pf0-f195.google.com with SMTP id b17-v6so27052132pfi.0 for ; Mon, 16 Jul 2018 16:40:53 -0700 (PDT) In-Reply-To: <1531464096-11319-1-git-send-email-lirongqing@baidu.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 07/12/2018 11:41 PM, Li RongQing wrote: > gro_hash size is 192 bytes, and uses 3 cache lines, if there is few */ > @@ -9264,6 +9273,9 @@ static struct hlist_head * __net_init netdev_create_hash(void) > /* Initialize per network namespace state */ > static int __net_init netdev_init(struct net *net) > { > + BUILD_BUG_ON(GRO_HASH_BUCKETS > > + FIELD_SIZEOF(struct napi_struct, gro_bitmask)); > + Sorry for the delay (patch is already merged) This looks wrong to me. FIELD_SIZEOF() is in bytes not bits. I guess we could either use BITS_PER_LONG or : diff --git a/net/core/dev.c b/net/core/dev.c index c883b17ee0fe2c8a7ca2f2867560ba74004790a7..4f8b92d81d107fc9acd2499297435cbd9e9b5c67 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -9282,7 +9282,7 @@ static struct hlist_head * __net_init netdev_create_hash(void) static int __net_init netdev_init(struct net *net) { BUILD_BUG_ON(GRO_HASH_BUCKETS > - FIELD_SIZEOF(struct napi_struct, gro_bitmask)); + 8 * FIELD_SIZEOF(struct napi_struct, gro_bitmask)); if (net != &init_net) INIT_LIST_HEAD(&net->dev_base_head);