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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 EA719C433DF for ; Fri, 21 Aug 2020 08:10:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9DC08204EA for ; Fri, 21 Aug 2020 08:10:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="HxpgaE/c" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DC08204EA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 31A858D0031; Fri, 21 Aug 2020 04:10:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CB498D0006; Fri, 21 Aug 2020 04:10:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1E1DF8D0031; Fri, 21 Aug 2020 04:10:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0250.hostedemail.com [216.40.44.250]) by kanga.kvack.org (Postfix) with ESMTP id 0928C8D0006 for ; Fri, 21 Aug 2020 04:10:49 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id C0FC18245571 for ; Fri, 21 Aug 2020 08:10:48 +0000 (UTC) X-FDA: 77173854576.26.scene85_060e09f27037 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin26.hostedemail.com (Postfix) with ESMTP id 7B1A41804B669 for ; Fri, 21 Aug 2020 08:10:48 +0000 (UTC) X-HE-Tag: scene85_060e09f27037 X-Filterd-Recvd-Size: 10481 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf07.hostedemail.com (Postfix) with ESMTP for ; Fri, 21 Aug 2020 08:10:47 +0000 (UTC) Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 07L83SV5169659; Fri, 21 Aug 2020 04:10:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=CrqYSsIFhB9UYjBEeMqOYUmVsPdkV+XB6MEzVcApiMo=; b=HxpgaE/c1zbmczPOLJD23ECl6Hpa2+ELlK05FhybhSJNtxI6x5LENPwzey9HfEYkTxSn y1yqYXiSob4/b/2b5bxEIyNHSdvXsfZKkNyyRB6gtkPn0Cjy0S4vehPEskNEZwIFznPT YzSTXJU4dylGtYv47XC2l6FSnP/oIjlpjmg3SYBAyjIh1TWfoSrK/jDrfrJjIsOgqIdb 8NVBGa4+NY2SKUdenarmz2/R4YPN7U0yT18Z+Jz9T8khOH8MfeAl6SYnkE/oHXWOXe2S oNdRDqRP7Ns9NdZaDvo1JgIFsBnlV5T7LGNjhCHoUwbL3FWRSC8nAS9fSmuqLIaO8/2L ug== Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com with ESMTP id 33257srcmu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Aug 2020 04:10:42 -0400 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 07L832cq016694; Fri, 21 Aug 2020 08:10:40 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma06ams.nl.ibm.com with ESMTP id 330tbvttee-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Aug 2020 08:10:40 +0000 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 07L8AcCa16122260 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 21 Aug 2020 08:10:38 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0C42DAE058; Fri, 21 Aug 2020 08:10:38 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C66F9AE056; Fri, 21 Aug 2020 08:10:36 +0000 (GMT) Received: from [9.102.2.201] (unknown [9.102.2.201]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 21 Aug 2020 08:10:36 +0000 (GMT) Subject: Re: [PATCH v2 00/13] mm/debug_vm_pgtable fixes To: Anshuman Khandual , linux-mm@kvack.org, akpm@linux-foundation.org Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org References: <20200819130107.478414-1-aneesh.kumar@linux.ibm.com> <87tuwyvjei.fsf@linux.ibm.com> <856eb6d7-9c09-728e-b374-d787145ac052@arm.com> <46cc2987-0d1e-f8e8-ecaf-2d246b33413e@linux.ibm.com> <6927a5cf-4100-e43e-6aba-5d7bc0533276@arm.com> From: "Aneesh Kumar K.V" Message-ID: <9b01e909-e6c3-1e6d-ae83-249bdab84ece@linux.ibm.com> Date: Fri, 21 Aug 2020 13:40:35 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <6927a5cf-4100-e43e-6aba-5d7bc0533276@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-08-21_06:2020-08-19,2020-08-21 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2008210075 X-Rspamd-Queue-Id: 7B1A41804B669 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam02 Content-Transfer-Encoding: quoted-printable 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 8/21/20 1:31 PM, Anshuman Khandual wrote: >=20 >=20 > On 08/21/2020 12:23 PM, Aneesh Kumar K.V wrote: >> On 8/21/20 9:03 AM, Anshuman Khandual wrote: >>> >>> >>> On 08/19/2020 07:15 PM, Aneesh Kumar K.V wrote: >>>> "Aneesh Kumar K.V" writes: >>>> >>>>> This patch series includes fixes for debug_vm_pgtable test code so = that >>>>> they follow page table updates rules correctly. The first two patch= es introduce >>>>> changes w.r.t ppc64. The patches are included in this series for co= mpleteness. We can >>>>> merge them via ppc64 tree if required. >>>>> >>>>> Hugetlb test is disabled on ppc64 because that needs larger change = to satisfy >>>>> page table update rules. >>>>> >>>>> Changes from V1: >>>>> * Address review feedback >>>>> * drop test specific pfn_pte and pfn_pmd. >>>>> * Update ppc64 page table helper to add _PAGE_PTE >>>>> >>>>> Aneesh Kumar K.V (13): >>>>> =C2=A0=C2=A0 powerpc/mm: Add DEBUG_VM WARN for pmd_clear >>>>> =C2=A0=C2=A0 powerpc/mm: Move setting pte specific flags to pfn_pt= e >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/ppc64: Avoid setting top bits in = radom value >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtables/hugevmap: Use the arch helper to= identify huge >>>>> =C2=A0=C2=A0=C2=A0=C2=A0 vmap support. >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/savedwrite: Enable savedwrite tes= t with >>>>> =C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_NUMA_BALANCING >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/THP: Mark the pte entry huge befo= re using >>>>> =C2=A0=C2=A0=C2=A0=C2=A0 set_pmd/pud_at >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/set_pte/pmd/pud: Don't use set_*_= at to update an >>>>> =C2=A0=C2=A0=C2=A0=C2=A0 existing pte entry >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/thp: Use page table depost/withdr= aw with THP >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/locks: Move non page table modify= ing test together >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/locks: Take correct page table lo= ck >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/pmd_clear: Don't use pmd/pud_clea= r on pte entries >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable/hugetlb: Disable hugetlb test on = ppc64 >>>>> =C2=A0=C2=A0 mm/debug_vm_pgtable: populate a pte entry before fetc= hing it >>>>> >>>>> =C2=A0 arch/powerpc/include/asm/book3s/64/pgtable.h |=C2=A0 29 +++= - >>>>> =C2=A0 arch/powerpc/include/asm/nohash/pgtable.h=C2=A0=C2=A0=C2=A0= |=C2=A0=C2=A0 5 - >>>>> =C2=A0 arch/powerpc/mm/book3s64/pgtable.c=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 2 +- >>>>> =C2=A0 arch/powerpc/mm/pgtable.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 |=C2=A0=C2=A0 5 - >>>>> =C2=A0 include/linux/io.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 12 ++ >>>>> =C2=A0 mm/debug_vm_pgtable.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 | 151 +++++++++++-------- >>>>> =C2=A0 6 files changed, 127 insertions(+), 77 deletions(-) >>>>> >>>> >>>> BTW I picked a wrong branch when sending this. Attaching the diff >>>> against what I want to send.=C2=A0 pfn_pmd() no more updates _PAGE_P= TE >>>> because that is handled by pmd_mkhuge(). >>>> >>>> diff --git a/arch/powerpc/mm/book3s64/pgtable.c b/arch/powerpc/mm/bo= ok3s64/pgtable.c >>>> index 3b4da7c63e28..e18ae50a275c 100644 >>>> --- a/arch/powerpc/mm/book3s64/pgtable.c >>>> +++ b/arch/powerpc/mm/book3s64/pgtable.c >>>> @@ -141,7 +141,7 @@ pmd_t pfn_pmd(unsigned long pfn, pgprot_t pgprot= ) >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long pmdv; >>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pmdv =3D (pfn << PAGE_SHIFT) = & PTE_RPN_MASK; >>>> -=C2=A0=C2=A0=C2=A0 return __pmd(pmdv | pgprot_val(pgprot) | _PAGE_P= TE); >>>> +=C2=A0=C2=A0=C2=A0 return pmd_set_protbits(__pmd(pmdv), pgprot); >>>> =C2=A0 } >>>> =C2=A0 =C2=A0 pmd_t mk_pmd(struct page *page, pgprot_t pgprot) >>>> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c >>>> index 7d9f8e1d790f..cad61d22f33a 100644 >>>> --- a/mm/debug_vm_pgtable.c >>>> +++ b/mm/debug_vm_pgtable.c >>>> @@ -229,7 +229,7 @@ static void __init pmd_huge_tests(pmd_t *pmdp, u= nsigned long pfn, pgprot_t prot) >>>> =C2=A0 =C2=A0 static void __init pmd_savedwrite_tests(unsigned long= pfn, pgprot_t prot) >>>> =C2=A0 { >>>> -=C2=A0=C2=A0=C2=A0 pmd_t pmd =3D pfn_pmd(pfn, prot); >>>> +=C2=A0=C2=A0=C2=A0 pmd_t pmd =3D pmd_mkhuge(pfn_pmd(pfn, prot)); >>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!IS_ENABLED(CONFIG_NUMA_B= ALANCING)) >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return; >>>> >>> >>> Cover letter does not mention which branch or tag this series applies= on. >>> Just assumed it to be 5.9-rc1. Should the above changes be captured a= s a >>> pre-requisite patch ? >>> >>> Anyways, the series fails to be build on arm64. >>> >>> A) Without CONFIG_TRANSPARENT_HUGEPAGE >>> >>> mm/debug_vm_pgtable.c: In function =E2=80=98debug_vm_pgtable=E2=80=99= : >>> mm/debug_vm_pgtable.c:1045:2: error: too many arguments to function =E2= =80=98pmd_advanced_tests=E2=80=99 >>> =C2=A0=C2=A0 pmd_advanced_tests(mm, vma, pmdp, pmd_aligned, vaddr, p= rot, saved_ptep); >>> =C2=A0=C2=A0 ^~~~~~~~~~~~~~~~~~ >>> mm/debug_vm_pgtable.c:366:20: note: declared here >>> =C2=A0 static void __init pmd_advanced_tests(struct mm_struct *mm, >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~~~~~~~~~~~~~ >>> >>> B) As mentioned previously, this should be solved by including >>> >>> mm/debug_vm_pgtable.c: In function =E2=80=98pmd_huge_tests=E2=80=99: >>> mm/debug_vm_pgtable.c:215:7: error: implicit declaration of function = =E2=80=98arch_ioremap_pmd_supported=E2=80=99; did you mean =E2=80=98arch_= disable_smp_support=E2=80=99? [-Werror=3Dimplicit-function-declaration] >>> =C2=A0=C2=A0 if (!arch_ioremap_pmd_supported()) >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~~~~~~~~~~~~~~~~~~~~= ~ >>> >>> Please make sure that the series builds on all enabled platforms i.e = x86, >>> arm64, ppc32, ppc64, arc, s390 along with selectively enabling/disabl= ing >>> all the features that make various #ifdefs in the test. >>> >> >> I was hoping to get kernel test robot build report to verify that. But= if you can help with that i have pushed a branch to github with reported= build failure fixes. >> >> https://github.com/kvaneesh/linux/tree/debug_vm_pgtable >> >> I still haven't looked at the PMD_FOLDED feedback from Christophe beca= use I am not sure i follow why we are checking for PMD folded there. >=20 > If this series does not build on existing enabled platforms, wondering > how effective the review could be, assuming that things would need to > change again to fix those build failures on various platforms. Getting > this to build here is essential, as not all page table constructs are > available across these platforms. Hence wondering, it might be better > if you could resend the series after fixing build issues. >=20 Sure. I am hoping kernel test robot will pick this up. I did an x86 and=20 about 19 different ppc config build with the series. The git tree above=20 was pushed with that. Considering you authored the change i am wondering=20 if you could help with checking other architecture (may be atleast arm=20 variant) -aneesh