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 6F722C54E64 for ; Sat, 23 Mar 2024 00:30:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 033526B008C; Fri, 22 Mar 2024 20:30:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F23EF6B0093; Fri, 22 Mar 2024 20:30:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DED556B0095; Fri, 22 Mar 2024 20:30:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id D0CE26B008C for ; Fri, 22 Mar 2024 20:30:34 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A49A980B93 for ; Sat, 23 Mar 2024 00:30:34 +0000 (UTC) X-FDA: 81926422788.21.7FBF9C6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 72EBC40019 for ; Sat, 23 Mar 2024 00:30:32 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=L3YFDBz1; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711153832; 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=dXzFSacRUGOz3guP7FE0TFnIIG/3J2Y+D5Xv5mcIJ4I=; b=AMgQ8xriPAOjQLmBKTrDFnQtBOWMHfbwsuJR9+ZhLEF7G7/mnvl9iUEkApRtm10jES6sGW u2TAKWXIBPuPqi0eGSmeUpYifVXQwxx17HkwNFS7PQjVXbxLpqkqN1herPWrzSkHoVQz4A 9etnP/kx+HW4n5u8T7FxGQiqYpyYbYg= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=L3YFDBz1; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711153832; a=rsa-sha256; cv=none; b=v+Lv02mZlgvC2rTUwMG7pj/zKt9ngpHt0xSQoDRStXLdqdlQ/bNVM55IElqm3XOLI82BSt NKNwRiStpaGyxbtMWipoeFFAFRxgUeTcU6GhhUyAuA6pPwSQhGon7yiW9q5mlIkX+weVcv 9UOts8xE4GjpOh4DYgOfTjpWs8bGph8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1711153831; 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: in-reply-to:in-reply-to:references:references; bh=dXzFSacRUGOz3guP7FE0TFnIIG/3J2Y+D5Xv5mcIJ4I=; b=L3YFDBz15ei4xi9DoU3KhivryQa/8U4gzdBOqvwor21EeR9oAssNEgMe2nz+t4qzcPjPl7 QteYXNa11sSEbPEw5P4IpfSmck1hJ3gkJF2qosU8RCK8N243KmZovtLP7V5zbzOYV0ctPM Qldcb+vzriCqXSb+9XDaUWNXbxI2WZI= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-177-wKOmXdqNOpiloOx0HSA9rQ-1; Fri, 22 Mar 2024 20:30:29 -0400 X-MC-Unique: wKOmXdqNOpiloOx0HSA9rQ-1 Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-43137863434so2142811cf.1 for ; Fri, 22 Mar 2024 17:30:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711153829; x=1711758629; h=in-reply-to: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=dXzFSacRUGOz3guP7FE0TFnIIG/3J2Y+D5Xv5mcIJ4I=; b=Da/Ew437j0Dsx2pASUxA/Nn98UJza6ZOV8dmWcrZEXvNmkYldZVSB9sAAvaPnlSi/R s4v1Pr5PJ6+oeLJ63EOiQ7pq60x8kYgMJKuQL1mkKKf85g+oyZf/1+Yb8xiJjqdAjcTV jxlGx5exMmk4ZZr6Gfd9cpKYP5r5KKV+IXDjmqVErDb+XJ1DtifbDZhIsppu0OAujM/I vfAXQdE0LATAoemBpEcfir1OdiuVOzfY4uGxH5/H8USVmDsovw/echWU36Ejii5QDVne id5FXCvKjGWWKCTvZFPhHbOeHJnL2i/WdXgJIVKlIF8wgsKy57lRF7+jOnNNIrlpKDkF VTuw== X-Gm-Message-State: AOJu0Yx4A4ILwGQvu/f30N2yiYIhdpcWzRmx4iSAaIECHxtHgDkgCfbq 0IFiHvLeCTwZ99eA+/uPTB4bGKiwUHDF6ljGnUNs22TPZ255hZs5Sq6tbiqEzDkjK6nlrVMKKKA bjW5EVifkrKr0wuJJTz3/YNdPfuFOO5jkvWlBY9cr3eiWqC33 X-Received: by 2002:a05:622a:1a97:b0:430:c2dc:a5ef with SMTP id s23-20020a05622a1a9700b00430c2dca5efmr1126584qtc.2.1711153828675; Fri, 22 Mar 2024 17:30:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE3Zwwie8lW8e1zjPdHeXjIabqqIya++N3e9UmqxHEMxwmGbP31eJT5HvpFdJCDH7G39Ns7UA== X-Received: by 2002:a05:622a:1a97:b0:430:c2dc:a5ef with SMTP id s23-20020a05622a1a9700b00430c2dca5efmr1126562qtc.2.1711153828186; Fri, 22 Mar 2024 17:30:28 -0700 (PDT) Received: from x1n ([99.254.121.117]) by smtp.gmail.com with ESMTPSA id fy15-20020a05622a5a0f00b00430911bac01sm315722qtb.74.2024.03.22.17.30.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Mar 2024 17:30:27 -0700 (PDT) Date: Fri, 22 Mar 2024 20:30:24 -0400 From: Peter Xu To: SeongJae Park Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Michael Ellerman , Christophe Leroy , Matthew Wilcox , Rik van Riel , Lorenzo Stoakes , Axel Rasmussen , Yang Shi , John Hubbard , linux-arm-kernel@lists.infradead.org, "Kirill A . Shutemov" , Andrew Jones , Vlastimil Babka , Mike Rapoport , Andrew Morton , Muchun Song , Christoph Hellwig , linux-riscv@lists.infradead.org, James Houghton , David Hildenbrand , Jason Gunthorpe , Andrea Arcangeli , "Aneesh Kumar K . V" , Mike Kravetz Subject: Re: [PATCH v3 03/12] mm: Make HPAGE_PXD_* macros even if !THP Message-ID: References: <20240321220802.679544-4-peterx@redhat.com> <20240322171456.118997-1-sj@kernel.org> MIME-Version: 1.0 In-Reply-To: <20240322171456.118997-1-sj@kernel.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 72EBC40019 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: w7xntnu8bwkwg6m4b9ayt9kunxrryyij X-HE-Tag: 1711153832-827397 X-HE-Meta: U2FsdGVkX1+MUrRbc0abjrdjjuzsWephM6Bmqg7R5vo6Zbe63/JQI4ACnAMNGDfXqWoAY5YHKKwgxpePT3UzVUXz0PHxyuoKaiGUon4Rr77KBNMr0RrnQ+KVBBaB2LMgDDZWdmQHaFeuB0M3YmlIXhxJVXFJFTRLwOsZF23nf/6BHrtRkgwW6oW7VsWvZ+vkm0G/JhyZK8ayhKZUzu/Hs/CUrEb1gZWqkj5/U5u+ncS6lzSSD+A/CjvqfOGwsct76CrQtbH7vyl7oxth+Stevth2amZgv9ymCBgF1CRgBDBOwNDtY/uFnYV//EcgOxknT5P3OmweUAo2aGU0k663wr8bqAYJ3bc8mMbCL1dwp3Pr0u0+mZ7jF+b3pWiB4/1FdfE8PY9p8XlT6rbWOKrYLf70tXaOvHq92aENIWqWTK9CSAOC4dmmg7jshyDAYvexkbbfN7s7hI4R2qUaoSecY+6pSRcYYZpiM8UE74b3htUWmly0zcVb1I32MTbEoh47Zabvg4KjRY5cmyrn4NECSz2tzjT3KUqPLUf/Jtdtc8LaiAcKxIwFuLpIu3dNi/UKeqHBJq0q4Yt83/ryWbv2cbqNk0NJc84t+lID4q/6dSoAKpwUCVxpCdsu9jLqLoB7NC6Rt9aek8LPpjtDRqGZo92QiVgka7/ZzZJcfuvYcGL0IFwsDGH987XHXZkKHn40CrtFRMePQi4ubqA0RWn3GqvxuJJxONjA6E6sQgLPay4VsDKQ0BctxYn0QUlybY/P5szf6Phss7to05pcndGqMpInEB/3PIn97TDEBOx85OJDrTEnFelbSn2GdKoNL2AGMnMah49ObrDka2BjagaTQFYs3yW+S7/GO+IeyXM0tYlQtna5siV03AfRImtFqzYfCC4z9mwfQ6+zsnUY2UrqAGRiT5vrUWPbB/S4neSZXi1ustCEgwDDdwRdRmrh9Mk7RFRAJQb36tpF0VWmlv3 NgYikT2K Z5wdCaGNXsrkA6ZWUYTfmZJzd4TA/FAQKokZKyUJ6grOW3VDGb9ycNMSVrraL7cTYb9oJPCL60SDNaILOOCNzZrMJ19kv4x7DtWkqJFH9Xlxy3ga3bCNGYFRJorHM/P2/bq3sVlusbpcjXiMx6Ndo5Siy+4/QOdCF3R5CeHYb+AMZ9XIKl/GqtwNcMFprDP2VUkw2IxXuk52R4kWC0yzNGVELqFrFWe/CsSuuQtTzyVdznSFCSADf83J0xfRlGctZx3gP3OWl+RNBN+LqkPXdcWyHZW6E/I0ugbyGVN4p1N8+KWp3NWv0GC5sWEAEssxxJwNI014OJrh0erIs7rMhw1SDHcjlJdEZR4spXb59jViM8eZUQQ67DI//E/0xa3dS4wHcZlUihDAY2Qz95jBzsd29BsDCPtMkDdRJ4h5FPWM4ijBYBZ6mq90yzpPs9YUZnxGebZAMhVDbbF+a224IhRgdIL4K1P/T4CVh5taefyJ51kqE/H+6OqAnau0s0JDxTgVfVV+WVvfCjfJs+tM/R18q3h81KzqfyfKEjtjMTIYLG124cRtRJU5NJM0OL5ruAck8+88DsufClX3mvUxlVLDwEhM6DkjRTmMiucH/YJoFmMpZlnAh0LY/o3N0mvinxClozNcXlAQ59l0= 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 Fri, Mar 22, 2024 at 10:14:56AM -0700, SeongJae Park wrote: > Hi Peter, Hi, SeongJae, > > On Thu, 21 Mar 2024 18:07:53 -0400 peterx@redhat.com wrote: > > > From: Peter Xu > > > > These macros can be helpful when we plan to merge hugetlb code into generic > > code. Move them out and define them even if !THP. > > > > We actually already defined HPAGE_PMD_NR for other reasons even if !THP. > > Reorganize these macros. > > > > Reviewed-by: Christoph Hellwig > > Reviewed-by: Jason Gunthorpe > > Signed-off-by: Peter Xu > > --- > > include/linux/huge_mm.h | 17 ++++++----------- > > 1 file changed, 6 insertions(+), 11 deletions(-) > > > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > > index de0c89105076..3bcdfc7e5d57 100644 > > --- a/include/linux/huge_mm.h > > +++ b/include/linux/huge_mm.h > > @@ -64,9 +64,6 @@ ssize_t single_hugepage_flag_show(struct kobject *kobj, > > enum transparent_hugepage_flag flag); > > extern struct kobj_attribute shmem_enabled_attr; > > > > -#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) > > -#define HPAGE_PMD_NR (1< > - > > /* > > * Mask of all large folio orders supported for anonymous THP; all orders up to > > * and including PMD_ORDER, except order-0 (which is not "huge") and order-1 > > @@ -87,14 +84,19 @@ extern struct kobj_attribute shmem_enabled_attr; > > #define thp_vma_allowable_order(vma, vm_flags, smaps, in_pf, enforce_sysfs, order) \ > > (!!thp_vma_allowable_orders(vma, vm_flags, smaps, in_pf, enforce_sysfs, BIT(order))) > > > > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > > #define HPAGE_PMD_SHIFT PMD_SHIFT > > #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) > > #define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1)) > > +#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) > > +#define HPAGE_PMD_NR (1< > > > #define HPAGE_PUD_SHIFT PUD_SHIFT > > #define HPAGE_PUD_SIZE ((1UL) << HPAGE_PUD_SHIFT) > > #define HPAGE_PUD_MASK (~(HPAGE_PUD_SIZE - 1)) > > +#define HPAGE_PUD_ORDER (HPAGE_PUD_SHIFT-PAGE_SHIFT) > > +#define HPAGE_PUD_NR (1< > I just found latest mm-unstable fails one of my build configurations[1] with > below error. 'git bisect' says this is the first patch set started the > failure. I haven't looked in deep, but just reporting first. > > In file included from .../include/linux/mm.h:1115, > from .../mm/vmstat.c:14: > .../mm/vmstat.c: In function 'zoneinfo_show_print': > .../include/linux/huge_mm.h:87:25: error: 'PMD_SHIFT' undeclared (first use in this function); did you mean 'PUD_SHIFT'? > 87 | #define HPAGE_PMD_SHIFT PMD_SHIFT > | ^~~~~~~~~ > > [1] https://github.com/awslabs/damon-tests/blob/next/corr/tests/build_m68k.sh Apologies for the issue. This is caused by !CONFIG_MMU, I think. I thought this would be fairly easy to fix by putting these macros under CONFIG_PGTABLE_HAS_HUGE_LEAVES, however when doing this I could have found some other issue that violates this rule.. mm/vmstat.c has referenced HPAGE_PMD_NR even if vmstat_item_print_in_thp() wanted to guard it only with CONFIG_THP. /home/peterx/git/linux/mm/vmstat.c: In function 'zoneinfo_show_print': /home/peterx/git/linux/mm/vmstat.c:1689:42: error: 'HPAGE_PMD_NR' undeclared (first use in this function) 1689 | pages /= HPAGE_PMD_NR; | ^~~~~~~~~~~~ /home/peterx/git/linux/mm/vmstat.c:1689:42: note: each undeclared identifier is reported only once for each function it appears in CC drivers/tty/tty_port.o /home/peterx/git/linux/mm/vmstat.c: In function 'vmstat_start': /home/peterx/git/linux/mm/vmstat.c:1822:33: error: 'HPAGE_PMD_NR' undeclared (first use in this function) 1822 | v[i] /= HPAGE_PMD_NR; | ^~~~~~~~~~~~ make[4]: *** [/home/peterx/git/linux/scripts/Makefile.build:243: mm/vmstat.o] Error 1 static __always_inline bool vmstat_item_print_in_thp(enum node_stat_item item) { if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) return false; ... } I think the problem is vmstat_item_print_in_thp() uses IS_ENABLED() however that won't stop compiler from looking into the "if".. so it'll still try to find the HPAGE_PMD_NR macro. It means, I may need to further change vmstat_item_print_in_thp() to make this work in the clean way.. by properly switching to a #ifdef. For that I'll need to post a formal patch and add people to review. I'll keep you posted. Side note: thank you for your script, just to mention make.cross has been moved to kbuild/, and it'll also need kbuild.sh now to work. So you may want to fix your test script (and it worked for you because you kept the old make.cross around), like: wget https://raw.githubusercontent.com/intel/lkp-tests/master/kbuild/make.cross -O ./bin/make.cross wget https://raw.githubusercontent.com/intel/lkp-tests/master/kbuild/kbuild.sh -O ./bin/kbuild.sh Thanks, -- Peter Xu