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=-10.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 2CC4EC433E4 for ; Tue, 14 Jul 2020 08:37:53 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BAC8121D92 for ; Tue, 14 Jul 2020 08:37:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ViRM9gIJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BAC8121D92 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 1261F8D0001; Tue, 14 Jul 2020 04:37:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0AFB76B0003; Tue, 14 Jul 2020 04:37:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB9708D0001; Tue, 14 Jul 2020 04:37:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0008.hostedemail.com [216.40.44.8]) by kanga.kvack.org (Postfix) with ESMTP id CEBFE6B0002 for ; Tue, 14 Jul 2020 04:37:51 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 5C806180AD807 for ; Tue, 14 Jul 2020 08:37:51 +0000 (UTC) X-FDA: 77036028342.28.kite50_3c16bcd26eef Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin28.hostedemail.com (Postfix) with ESMTP id 302026C0A for ; Tue, 14 Jul 2020 08:37:51 +0000 (UTC) X-HE-Tag: kite50_3c16bcd26eef X-Filterd-Recvd-Size: 8230 Received: from mail-io1-f68.google.com (mail-io1-f68.google.com [209.85.166.68]) by imf43.hostedemail.com (Postfix) with ESMTP for ; Tue, 14 Jul 2020 08:37:50 +0000 (UTC) Received: by mail-io1-f68.google.com with SMTP id f23so16446645iof.6 for ; Tue, 14 Jul 2020 01:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UXcvlRkL+rP00wIkwxgaUUeJruwfzTk+tSb1yGBtYmE=; b=ViRM9gIJdvZpZ70h5V18lNlz42DdiJjWHAySlSiZaRqdSMYDEIF4GVCoogQUsYYx7a iV2IamjZVmDh2TSD4SUEvRFICzdIyjXWG5lRN5eS8KaU7C8ip+BZ42O+uf0Vmkl/+yS7 W9OQ7nD7XLV2HlbUVgjuvhapmfx5XH6Q0zvE9sAXxV8BTl3KpbtWdVVQoJtK/cYz5fAs QKGyr3Ca0vWDCoekuo60137XBx592F+GaNtpdff8/z2LTa2GpPPCCgVZlssS/lH1jmxx wH6P51vZzZlPtjUZiiT91O1pTIw4oCioFvMMVLrA4faNkByCEvskjvXB7M6Iw27jtBtz RWDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UXcvlRkL+rP00wIkwxgaUUeJruwfzTk+tSb1yGBtYmE=; b=D2O61HiCfjs1RAPS0P5Jw9QSB7CfM0HqLSMOF31C+DN5efWcug8do4Z81DiGD6i2zK ERnnWg6nAJ84bZdLWaEsoWHItawICwpWUKYK56pAdKotizgw6stLyRo8ywn8nSff3DW8 F8GFmQcOMF8IkjlGOoF1TQMKkxK7pQwpDnPTjUgNlfKunwk9xcB1nu79iM/AG1bC2MAF t0b8gzPto0rOjPY/1LkrqaK4dl7tm0mSF/zgaja1mJN/ZX2N/bhjbOXqDUSSBFr5fVGz Kh8TkoD0mg5d6Iu3O4/zeG+xraEFei+Do9jRiucrAeC2yS8n8igzfUTC+9GV26Mx5Qjz IlDA== X-Gm-Message-State: AOAM5310BAqQCpGS3V6qoGgB5N96NfFewl12IjIQBo8FZ3pnmyIeMgXN m0wI7L1VNHVD6FaZ8pkXaoD8a/9Q0RJ7ilAJW7Q= X-Google-Smtp-Source: ABdhPJyud0vB1fj9qgci4bf8eIrWivIZFePW3mXSe2/bCbwrXhJ7Zw4rj6gqUBgewPK7E+jB9OOQpYAgLtL5OEWsMCE= X-Received: by 2002:a02:cc24:: with SMTP id o4mr4689471jap.105.1594715870042; Tue, 14 Jul 2020 01:37:50 -0700 (PDT) MIME-Version: 1.0 References: <20200714073404.84863-1-richard.weiyang@linux.alibaba.com> In-Reply-To: <20200714073404.84863-1-richard.weiyang@linux.alibaba.com> From: Pankaj Gupta Date: Tue, 14 Jul 2020 10:37:38 +0200 Message-ID: Subject: Re: [PATCH] mm/hugetlb: hide nr_nodes in the internal of for_each_node_mask_to_[alloc|free] To: Wei Yang Cc: mike.kravetz@oracle.com, Andrew Morton , Linux MM , LKML Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 302026C0A X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam02 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: > The second parameter of for_each_node_mask_to_[alloc|free] is a loop > variant, which is not used outside of loop iteration. > > Let's hide this. > > Signed-off-by: Wei Yang > --- > mm/hugetlb.c | 38 ++++++++++++++++++++------------------ > 1 file changed, 20 insertions(+), 18 deletions(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 57ece74e3aae..9c3d15fb317e 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1196,17 +1196,19 @@ static int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed) > return nid; > } > > -#define for_each_node_mask_to_alloc(hs, nr_nodes, node, mask) \ > - for (nr_nodes = nodes_weight(*mask); \ > - nr_nodes > 0 && \ > +#define for_each_node_mask_to_alloc(hs, node, mask) \ > + int __nr_nodes; \ > + for (__nr_nodes = nodes_weight(*mask); \ > + __nr_nodes > 0 && \ > ((node = hstate_next_node_to_alloc(hs, mask)) || 1); \ > - nr_nodes--) > + __nr_nodes--) > > -#define for_each_node_mask_to_free(hs, nr_nodes, node, mask) \ > - for (nr_nodes = nodes_weight(*mask); \ > - nr_nodes > 0 && \ > +#define for_each_node_mask_to_free(hs, node, mask) \ > + int __nr_nodes; \ > + for (__nr_nodes = nodes_weight(*mask); \ > + __nr_nodes > 0 && \ > ((node = hstate_next_node_to_free(hs, mask)) || 1); \ > - nr_nodes--) > + __nr_nodes--) > > #ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE > static void destroy_compound_gigantic_page(struct page *page, > @@ -1403,7 +1405,7 @@ static void __free_huge_page(struct page *page) > * reservation. If the page was associated with a subpool, there > * would have been a page reserved in the subpool before allocation > * via hugepage_subpool_get_pages(). Since we are 'restoring' the > - * reservtion, do not call hugepage_subpool_put_pages() as this will > + * reservation, do not call hugepage_subpool_put_pages() as this will > * remove the reserved page from the subpool. > */ > if (!restore_reserve) { > @@ -1760,10 +1762,10 @@ static int alloc_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed, > nodemask_t *node_alloc_noretry) > { > struct page *page; > - int nr_nodes, node; > + int node; > gfp_t gfp_mask = htlb_alloc_mask(h) | __GFP_THISNODE; > > - for_each_node_mask_to_alloc(h, nr_nodes, node, nodes_allowed) { > + for_each_node_mask_to_alloc(h, node, nodes_allowed) { > page = alloc_fresh_huge_page(h, gfp_mask, node, nodes_allowed, > node_alloc_noretry); > if (page) > @@ -1787,10 +1789,10 @@ static int alloc_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed, > static int free_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed, > bool acct_surplus) > { > - int nr_nodes, node; > + int node; > int ret = 0; > > - for_each_node_mask_to_free(h, nr_nodes, node, nodes_allowed) { > + for_each_node_mask_to_free(h, node, nodes_allowed) { > /* > * If we're returning unused surplus pages, only examine > * nodes with surplus pages. > @@ -2481,9 +2483,9 @@ int alloc_bootmem_huge_page(struct hstate *h) > int __alloc_bootmem_huge_page(struct hstate *h) > { > struct huge_bootmem_page *m; > - int nr_nodes, node; > + int node; > > - for_each_node_mask_to_alloc(h, nr_nodes, node, &node_states[N_MEMORY]) { > + for_each_node_mask_to_alloc(h, node, &node_states[N_MEMORY]) { > void *addr; > > addr = memblock_alloc_try_nid_raw( > @@ -2662,17 +2664,17 @@ static inline void try_to_free_low(struct hstate *h, unsigned long count, > static int adjust_pool_surplus(struct hstate *h, nodemask_t *nodes_allowed, > int delta) > { > - int nr_nodes, node; > + int node; > > VM_BUG_ON(delta != -1 && delta != 1); > > if (delta < 0) { > - for_each_node_mask_to_alloc(h, nr_nodes, node, nodes_allowed) { > + for_each_node_mask_to_alloc(h, node, nodes_allowed) { > if (h->surplus_huge_pages_node[node]) > goto found; > } > } else { > - for_each_node_mask_to_free(h, nr_nodes, node, nodes_allowed) { > + for_each_node_mask_to_free(h, node, nodes_allowed) { > if (h->surplus_huge_pages_node[node] < > h->nr_huge_pages_node[node]) > goto found; > -- > 2.20.1 (Apple Git-117) Acked-by: Pankaj Gupta > >