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 8D217C3DA4A for ; Thu, 22 Aug 2024 19:17:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1CA636B024A; Thu, 22 Aug 2024 15:17:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 156536B024D; Thu, 22 Aug 2024 15:17:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F34F06B0355; Thu, 22 Aug 2024 15:17:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id CE54D6B0353 for ; Thu, 22 Aug 2024 15:17:05 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8670D1C1CA5 for ; Thu, 22 Aug 2024 19:17:05 +0000 (UTC) X-FDA: 82480839210.30.4AA44E6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf24.hostedemail.com (Postfix) with ESMTP id 6DF8418001E for ; Thu, 22 Aug 2024 19:17:03 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=NKTUqdVB; spf=pass (imf24.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724354206; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8YIGGOCAzyFLMegU+7vlNDExeBWij0GRi4vYqrn2fMA=; b=eIqZonljlMALrY+61iVw0XcAsj23QfYZKu8w+A53sCXJNxP2J6tR4DQ8J1fnhLdbuHJPEZ DngvFUKO+jlX2fXEiuoONF9qMhpWmzbh+rJXxYxbQQ8xChBmyedTrjuXXKygI3MbWEFzgQ oIbBfN5L16IyizEBc6ryJQQKV9IRL9c= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=NKTUqdVB; spf=pass (imf24.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724354206; a=rsa-sha256; cv=none; b=o5lC3IJ5o+9qYRvos4feUUd2v/3w+5RlhXL+lhzOfy5qGA05+mQj6OFeHeIpgk+tOxGZMO xHAJ2VQlJt5xT+c2w+r3e4OpoVbl+jjU9AxGoJU01PLz3WAfgkd3cMiGsrWfhP2CUZosOo 5MA5qyZNgpF6VO+nUbz4sbLMx7xAodQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724354222; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8YIGGOCAzyFLMegU+7vlNDExeBWij0GRi4vYqrn2fMA=; b=NKTUqdVBEy94QjgK50nKhbIuC61tcxe0wn6IJVsEfsShE0QopBQZyUxbb4bJJKE0B/w5Tg JWaRmd4SyqB5wjzwpAc5VHO1i/TTpdtXuH2LkbfVtCgHErUnAavLUesBQzKaESLwGjlb1x 6yxsZDW/Xk6C8KjvgtZ6bLZlrj8CYKA= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-684-7R9W0TjKN7ys7eiSfLCdwA-1; Thu, 22 Aug 2024 15:16:59 -0400 X-MC-Unique: 7R9W0TjKN7ys7eiSfLCdwA-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-6bf6e8187c7so12954636d6.1 for ; Thu, 22 Aug 2024 12:16:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724354219; x=1724959019; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8YIGGOCAzyFLMegU+7vlNDExeBWij0GRi4vYqrn2fMA=; b=wOg5ZXWW7/wwjo6a4iHJVhQ0I6/gLredtEnH6HF5mqH+AkjyG5QwwKeH0RIlQ2Si+T wiKXSuKDEyMXbLYA8zCZn82f7ATZ+beakSdGkWXSGovW2R2BYcrvQnaG2QkP3RyIQcR1 Z78QgFVDo3Ou34yHBVe1bp64Y0TRMAY0AxtlztRWExrkXhJYwrTuO+Bwv016pn24pP2v LaoAaJmk4D3JKQAPW+c/6DaKnjRcZ3i551+SrKqJELcpfVKG/H2cV9hIyeXiVY8RD/LL rKOxpfNomJGuFWoMEKSnKil8WVpao9LaW5ADq76ZC2yYmaUri0zWxaJAm9qfG4eQ/c6g Isrw== X-Forwarded-Encrypted: i=1; AJvYcCXq/iJxaxQakjD7xJ6wzSYRlFhXMepYIb/tmpMugZlx1krdEuf42pO+9p9q2Q5TK6e7yve+172zBQ==@kvack.org X-Gm-Message-State: AOJu0YwxiQZtuvgFvdGz3i6YzsCA9BImg8FFSngqxcMu5T2eSy6i5Ngy e94zgW8QDEhVgmJYvgI1m1snx7Sr9oCUNqC3ADhQR/IuLxbzh9E4yyyjGNH+htDjUi303N3PRCK r9jeJISnqUvv2nfFGPIMXN8EDb2Zd8qSrg+wchmSdh9V4dK7s X-Received: by 2002:a05:6214:5d0b:b0:6bf:77d2:bd1b with SMTP id 6a1803df08f44-6c155d50b2cmr98300216d6.1.1724354219384; Thu, 22 Aug 2024 12:16:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFFYSGXCSjeDYuhWfImPH5iwMXkcbcR5SnsnH9Y1R2sqbG+oUFa29LZaEVT2+yBaXWcgJ2DTA== X-Received: by 2002:a05:6214:5d0b:b0:6bf:77d2:bd1b with SMTP id 6a1803df08f44-6c155d50b2cmr98299806d6.1.1724354219032; Thu, 22 Aug 2024 12:16:59 -0700 (PDT) Received: from x1n (pool-99-254-121-117.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c162db0986sm10643056d6.97.2024.08.22.12.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Aug 2024 12:16:58 -0700 (PDT) Date: Thu, 22 Aug 2024 15:16:55 -0400 From: Peter Xu To: LEROY Christophe Cc: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , Vlastimil Babka , David Hildenbrand , Oscar Salvador , "linux-s390@vger.kernel.org" , Andrew Morton , Matthew Wilcox , Dan Williams , Michal Hocko , "linux-riscv@lists.infradead.org" , "sparclinux@vger.kernel.org" , Alex Williamson , Jason Gunthorpe , "x86@kernel.org" , Alistair Popple , "linuxppc-dev@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , Ryan Roberts , Hugh Dickins , Axel Rasmussen Subject: Re: [PATCH RFC 2/6] mm: PGTABLE_HAS_P[MU]D_LEAVES config options Message-ID: References: <20240717220219.3743374-1-peterx@redhat.com> <20240717220219.3743374-3-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: u4hqbbgeu6gp44cdrk1x5rdjgm1o7ro6 X-Rspamd-Queue-Id: 6DF8418001E X-Rspamd-Server: rspam11 X-HE-Tag: 1724354223-364571 X-HE-Meta: U2FsdGVkX1/5yVysonyKGxlnuUBHSuh1HPvJ6D4gYyphLoid9F/uDjZtNyTu0GyUXa4bq09OSn/UzXd1+X1TY24TyGFTWFb+4CQBo8Apa9tXfWiq6Gwb7yF4QEob2uBHE5onNB6WTMR19sJRJ19dFswWNIMrxVjBwN6RTRQj1vxzf9QYz2E6bSO2rLlCkrKRdEmoOsVHNkNRotZENYQAmPPxfwGFq8hB1WI096l7eI1GTsuS3ddGOYy7J8SVhVf1erQ79taMfDHNnuiT4ZqAqnqycOiWeVyGQFGg6Udb7kM2luxZKPbPe9BQRgbKgqDMFKrjU5JDnvUSNSkHo1cRtedBzvlK1BgQ805ylund5r16SCai1+EAQHGrJ4xHsRDRKaz0Xap69fSmbA/pbEWxLwkRYFcbasTZL9pFAKNIBiQYtDvE4fnT9/jOk+7EQaO8sg3lISXrkblDjaUYH86oSyq3lwoLKubW229MaVL3GO/PB7TlarixABvtOs0gm7jeSxHuXnTTTcvcJN3PPOXR32sMmGqQ57f2HUY5z8dfPRBZMmJhRUvyi0IwcJFqnzSiH1yUaLiF9g0Bjilr2qW5kGbghChE25vJ0dS8vr4+IOHaQEPR6BfKHFnax8pNoF4dVX6jcjWMkFEasNi/AMQD3GWnjsnrLKXjdkwu1kp2oHtY0FRPm4/BgdBx8qXOgP3Jo2p/RHjoNxFuLY6ptpsLn+o1WLXdn89+KPreadyF66mEHmpzArZ9fnOePmLHQHw3F1nj8i621iUqhEG13p3nDXJCRGFm2qox5ifXsRoToTlILFx5LIyfOb3HM1jLtcswfhC0zBs+i8ti9xYMaJVzPMWgYzq/oHEM7hOmtylBpfRQgKOkXGwgBMZO5FhIAiydP/qVrmcb2aXWivlzkH0jlOkSmCGW0i9aczSrxSw1fdQy0pxx9OhEh05X8hfBjpuBXvinQpzpRj4Y9woyxnf XG9X9aMK E7ltomB+cRHbcwSOWmDew2AebihkVnRqaG98Y4LSo2t9dR65ujJpt7sEqbSYyWNdJqC4IHj1FhOGDYqlmoBhUHKqoMMABd0EWrfpC/HwfwdmF8+/la1PxViUYU5ok6CD9d+6DTwEseezO6wk7BN10Qy1x8YoawWuKDatmBDMPA4XkJCVLieL5FyB0gGD+a+ClbTnOmx1BAd/emhG16d7atcfc+WKsDgZv9KGH5G8izuNJXCpK7I40pFqo33ARsfZMIUZ7C0UKCjQiYv3kMwutSYdS5wD/PGTAGiKpd33AlIkQFT9IO4pAUY/RYJwfvjB0hm/LcWcMkSYdVLR1T8EYodcg/Ex/OriD9No8kPjYCzzcmNAAdjyTr/Gww3y3OsNg93IuZC8B03mBsmbom/b8g2qIhWpsZi2E2jH27hg7eTkO8sSha6cdYzIh33aW2usuXedzUqQSabQh780p/yWCMDw/PeOyI25IOkFAtJxL7UWyJVQ= 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: List-Subscribe: List-Unsubscribe: On Thu, Aug 22, 2024 at 05:22:03PM +0000, LEROY Christophe wrote: > > > Le 18/07/2024 à 00:02, Peter Xu a écrit : > > Introduce two more sub-options for PGTABLE_HAS_HUGE_LEAVES: > > > > - PGTABLE_HAS_PMD_LEAVES: set when there can be PMD mappings > > - PGTABLE_HAS_PUD_LEAVES: set when there can be PUD mappings > > > > It will help to identify whether the current build may only want PMD > > helpers but not PUD ones, as these sub-options will also check against the > > arch support over HAVE_ARCH_TRANSPARENT_HUGEPAGE[_PUD]. > > > > Note that having them depend on HAVE_ARCH_TRANSPARENT_HUGEPAGE[_PUD] is > > still some intermediate step. The best way is to have an option say > > "whether arch XXX supports PMD/PUD mappings" and so on. However let's > > leave that for later as that's the easy part. So far, we use these options > > to stably detect per-arch huge mapping support. > > > > Signed-off-by: Peter Xu > > --- > > include/linux/huge_mm.h | 10 +++++++--- > > mm/Kconfig | 6 ++++++ > > 2 files changed, 13 insertions(+), 3 deletions(-) > > > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > > index 711632df7edf..37482c8445d1 100644 > > --- a/include/linux/huge_mm.h > > +++ b/include/linux/huge_mm.h > > @@ -96,14 +96,18 @@ extern struct kobj_attribute thpsize_shmem_enabled_attr; > > #define thp_vma_allowable_order(vma, vm_flags, tva_flags, order) \ > > (!!thp_vma_allowable_orders(vma, vm_flags, tva_flags, BIT(order))) > > > > -#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES > > -#define HPAGE_PMD_SHIFT PMD_SHIFT > > +#ifdef CONFIG_PGTABLE_HAS_PUD_LEAVES > > #define HPAGE_PUD_SHIFT PUD_SHIFT > > #else > > -#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) > > #define HPAGE_PUD_SHIFT ({ BUILD_BUG(); 0; }) > > #endif > > > > +#ifdef CONFIG_PGTABLE_HAS_PMD_LEAVES > > +#define HPAGE_PMD_SHIFT PMD_SHIFT > > +#else > > +#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) > > +#endif > > + > > #define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) > > #define HPAGE_PMD_NR (1< > #define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1)) > > diff --git a/mm/Kconfig b/mm/Kconfig > > index 60796402850e..2dbdc088dee8 100644 > > --- a/mm/Kconfig > > +++ b/mm/Kconfig > > @@ -860,6 +860,12 @@ endif # TRANSPARENT_HUGEPAGE > > config PGTABLE_HAS_HUGE_LEAVES > > def_bool TRANSPARENT_HUGEPAGE || HUGETLB_PAGE > > > > +config PGTABLE_HAS_PMD_LEAVES > > + def_bool HAVE_ARCH_TRANSPARENT_HUGEPAGE && PGTABLE_HAS_HUGE_LEAVES > > + > > +config PGTABLE_HAS_PUD_LEAVES > > + def_bool HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD && PGTABLE_HAS_HUGE_LEAVES > > + > > What if an architecture has hugepages at PMD and/or PUD level and > doesn't support THP ? What's the arch to be discussed here? The whole purpose of this series so far is trying to make some pmd/pud helpers that only defined with CONFIG_THP=on to be available even if not. It means this series alone (or any future plan) shouldn't affect any arch that has CONFIG_THP=off always. But logically I think we should need some config option just to say "this arch supports pmd mappings" indeed, even if CONFIG_THP=off. When that's there, we should perhaps add that option into this equation so PGTABLE_HAS_*_LEAVES will also be selected in that case. -- Peter Xu