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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ECF7AC43334 for ; Tue, 28 Jun 2022 21:58:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1B28C8E0002; Tue, 28 Jun 2022 17:58:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 162EE8E0001; Tue, 28 Jun 2022 17:58:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 052048E0002; Tue, 28 Jun 2022 17:58:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id EB02F8E0001 for ; Tue, 28 Jun 2022 17:58:45 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id C4524122D8D for ; Tue, 28 Jun 2022 21:58:45 +0000 (UTC) X-FDA: 79629009810.12.BDF3C9E Received: from mail-vk1-f178.google.com (mail-vk1-f178.google.com [209.85.221.178]) by imf25.hostedemail.com (Postfix) with ESMTP id 70582A001C for ; Tue, 28 Jun 2022 21:58:45 +0000 (UTC) Received: by mail-vk1-f178.google.com with SMTP id m188so6619292vkm.3 for ; Tue, 28 Jun 2022 14:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gsr4+tcY+roUGgRtfBsLjJViwTozeORRsEF6iLI2O8c=; b=HsAM0rUxxxvjb0YqXNby4zGp7qL2ackwldIMeQzwN/BYg59wNx5b+HF1VjuI0M1QUL txMZzsVE18hqXfsYYpdcmWJKhRZziT8z4Bs+FexBNvjqHTZhXOn8Yjg/wTSa9Y/H8Y6n TyY2tkh7ke4QLjRERx7goch9JasBaZTUsPeuxNDP543SWXCFMwrXGQ0iPpDFWgZvM6TW gYbhU9YRa3F/nAjvy4DD67wUUvqUxKSX6a/gzrY+/ADMpKDCojBt60oc1qRgqOBRAwhN 36HvsNATdoNS+zyqT5BZ8gsTmzI2QJ+faZ7+fgKgsYllKKqo1e8T0qq0j1BtKpd5TCai n4xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gsr4+tcY+roUGgRtfBsLjJViwTozeORRsEF6iLI2O8c=; b=H+nyFOcvFKzWshI6YQVgljtYDk6u28aPUqmbNqqila6HJoa3vw7I/fu0Ia3O/d7Pk9 LEUKHq9MVJd07ax6UaB8xf2BV4mVK4P5219MqpiI7c0N24+IvK/VSsZXWt1qGhoNDK1d kMzhJ17PpBytLeS4vdLFk0m06S4Fu++eppkGmjRllqOXckEBG7RjTzUviw9TGZ/YZTlK 6DscLILKkWGfFtG/Twlt/EsVp7H20+bmgjh1a6gY1KWVZ9wyI5Dl57mIWSwj5S1BHAnT w2F4CnhK3Ui7jVtbYUK7HyxFj/95mCAk8hVxLRywfVwwmuEshR1AFoaeb41zb6VvXMl7 XdlQ== X-Gm-Message-State: AJIora8EJBVUFgjujc4rAbg7118et9c7gce+d2rZZV0fhEVPzoeM8ql1 9VypfKpiJGeHJzdt49wrrCMeXJcw+/XcB0D4dK9lew== X-Google-Smtp-Source: AGRyM1s97I/toNISSZZbGxhiPclKf8DPsv3gPZ98ckqTKPQ0xeDopF7bIABUpPyFuSfw+0N9eV8473hhSHms4JMh2zA= X-Received: by 2002:a05:6122:714:b0:36b:ff43:3af6 with SMTP id 20-20020a056122071400b0036bff433af6mr2736073vki.15.1656453524515; Tue, 28 Jun 2022 14:58:44 -0700 (PDT) MIME-Version: 1.0 References: <20220624173656.2033256-1-jthoughton@google.com> <20220624173656.2033256-11-jthoughton@google.com> In-Reply-To: <20220624173656.2033256-11-jthoughton@google.com> From: Mina Almasry Date: Tue, 28 Jun 2022 14:58:32 -0700 Message-ID: Subject: Re: [RFC PATCH 10/26] hugetlb: add for_each_hgm_shift To: James Houghton Cc: Mike Kravetz , Muchun Song , Peter Xu , David Hildenbrand , David Rientjes , Axel Rasmussen , Jue Wang , Manish Mishra , "Dr . David Alan Gilbert" , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656453525; a=rsa-sha256; cv=none; b=XWplw6L2PL1AoKDmaxkhTQedbD6ykdgVgGoqEP449kC2VMywhQOr5GVgtYek3mLQ9zYIfV BCgSUCIPZ4yPmLJmh8IxEDJkTE7/wvQMGlTIA8jnFMXyKezs/lgsRhpsJtf8j1ebK8OHPS B7LciRn1O6SOEZ8meBNmR68R/P0M+Zo= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=HsAM0rUx; spf=pass (imf25.hostedemail.com: domain of almasrymina@google.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656453525; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gsr4+tcY+roUGgRtfBsLjJViwTozeORRsEF6iLI2O8c=; b=yQdRSYfCN0CI604oMiEB4u246MsjI1VpQFH7MNcIizJXTbAnNnJMTzXLMSe58Fs2weAUfh 54wy7KWDe97HLS1wJxtq8SOBCrp2fD7Fg/MluS/VuNjIyE7PwVfiDNLVN/SFFdrnSwARB7 THYgpE7trHV5D2qZzL8mPlVZ69idGuA= X-Rspam-User: Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=HsAM0rUx; spf=pass (imf25.hostedemail.com: domain of almasrymina@google.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspamd-Server: rspam02 X-Stat-Signature: r497iymqf539rapig36wsjt7mqiwgoeu X-Rspamd-Queue-Id: 70582A001C X-HE-Tag: 1656453525-729697 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: On Fri, Jun 24, 2022 at 10:37 AM James Houghton wrote: > > This is a helper macro to loop through all the usable page sizes for a > high-granularity-enabled HugeTLB VMA. Given the VMA's hstate, it will > loop, in descending order, through the page sizes that HugeTLB supports > for this architecture; it always includes PAGE_SIZE. > > Signed-off-by: James Houghton > --- > mm/hugetlb.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 8b10b941458d..557b0afdb503 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -6989,6 +6989,16 @@ bool hugetlb_hgm_enabled(struct vm_area_struct *vma) > /* All shared VMAs have HGM enabled. */ > return vma->vm_flags & VM_SHARED; > } > +static unsigned int __shift_for_hstate(struct hstate *h) > +{ > + if (h >= &hstates[hugetlb_max_hstate]) > + return PAGE_SHIFT; h > &hstates[hugetlb_max_hstate] means that h is out of bounds, no? am I missing something here? So is this intending to do: if (h == hstates[hugetlb_max_hstate] return PAGE_SHIFT; ? If so, could we write it as so? I'm also wondering why __shift_for_hstate(hstate[hugetlb_max_hstate]) == PAGE_SHIFT? Isn't the last hstate the smallest hstate which should be 2MB on x86? Shouldn't this return PMD_SHIFT in that case? > + return huge_page_shift(h); > +} > +#define for_each_hgm_shift(hstate, tmp_h, shift) \ > + for ((tmp_h) = hstate; (shift) = __shift_for_hstate(tmp_h), \ > + (tmp_h) <= &hstates[hugetlb_max_hstate]; \ > + (tmp_h)++) > #endif /* CONFIG_HUGETLB_HIGH_GRANULARITY_MAPPING */ > > /* > -- > 2.37.0.rc0.161.g10f37bed90-goog >