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 7D54EC7115B for ; Fri, 20 Jun 2025 06:13:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E46416B007B; Fri, 20 Jun 2025 02:13:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E1DF86B0089; Fri, 20 Jun 2025 02:13:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5A976B008A; Fri, 20 Jun 2025 02:13:37 -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 C6FC16B007B for ; Fri, 20 Jun 2025 02:13:37 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 74AB91417E2 for ; Fri, 20 Jun 2025 06:13:37 +0000 (UTC) X-FDA: 83574762474.22.D8798B5 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf03.hostedemail.com (Postfix) with ESMTP id 2AD7520008 for ; Fri, 20 Jun 2025 06:13:35 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=CEdZqcpg; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of mcasquer@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mcasquer@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750400015; a=rsa-sha256; cv=none; b=OwBIasTh2igo0N11Z6x3H38KYZNhxt8V8iJTovQSz9f5PYi4R4j17vkQ10I2m3t+73LkYt 5o73X0VYhx0IsK4l9wjOsynBevyEHZUumkjl4E9MH/y3MJ6AK/+2WgZbRKmMwaCRGAdJnx 8kfnE6nzfSis48mPqSi6+XSulOLB7y8= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=CEdZqcpg; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of mcasquer@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mcasquer@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750400015; 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=GWlhXdAovke7Vs8lHzjuiPwP8l8W3x2600LjzDGhdIU=; b=FQTUt+89NiIh43e9r+C82EWxxwqz6es85RWB2L03t0D4+yyA/atjsENY5aKalpDcaaxeqH bSLzYx6CeXjgypUiV77nABfNqQgx+6rIthJXxwrjX9tundxZyyoS9a24pb8ZAowLl4HSUu m1mJmQM3FzEGj0D6CahnnWxmSpD3OZA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1750400014; 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=GWlhXdAovke7Vs8lHzjuiPwP8l8W3x2600LjzDGhdIU=; b=CEdZqcpgB1Mk7awmDd5ugHmRtdLmFQ7ao3hFxRAvMmBUq4PyXrkn9KZvqGVWqZy6AsQeEO wdb9wNqD6mXxwVN6+UTvQb62V6A0RPqJN8F57t1rKDr0s6ZIfuOUnTLCDyRQcDwk3/uICG sPfbH7GxUBafzxH+672mQTF77G3zWfw= Received: from mail-lj1-f197.google.com (mail-lj1-f197.google.com [209.85.208.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-178-VOW70wjtORi1_W93XYqB8w-1; Fri, 20 Jun 2025 02:13:31 -0400 X-MC-Unique: VOW70wjtORi1_W93XYqB8w-1 X-Mimecast-MFC-AGG-ID: VOW70wjtORi1_W93XYqB8w_1750400010 Received: by mail-lj1-f197.google.com with SMTP id 38308e7fff4ca-32b3a3c5cd0so5641311fa.3 for ; Thu, 19 Jun 2025 23:13:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750400010; x=1751004810; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GWlhXdAovke7Vs8lHzjuiPwP8l8W3x2600LjzDGhdIU=; b=dobie5jtmBTiHZbypYFVYj93ZigGkAuJ65+01NC9hM7h4SlRYtB3KX0igvpM1lzzm9 saTqOVjpzZf7L0Dj3xNZa7uo2164vWbM3VVWkdW1lD5Jat0pqEXxNmQ/UjHZhq9AbIoU BmguuSGoZcuNwMEfz2JGZueH01MIXrYTFii3tB5Wm6ljQR4V4qhrTcPzAvC3Z8VTNGTT GGoxrXpsPC0h68pQKDiVJ9nOqXo+CJi2rHLFFecuEOFlsPeABzOXSrwj5B8Sl4aDZOB/ wG0zTXCtzMD4ULCS4Soc/qgKXtqfRUiFMrrrcn0NEDLXurpB6XSBu/fS7dfNRoJNeb0o Jgew== X-Forwarded-Encrypted: i=1; AJvYcCVEIx9eHBX0vFTH6momTDmdfXiD5CrMq5d0lbsbZmM5Vqcyv49idjwFHhKDNCCumTBPXa4sbKcM1w==@kvack.org X-Gm-Message-State: AOJu0Yw90ne3BXFtUw9x2W8IEvThJ2HAxqhFzaP1wsGdIwl1oQdB5sG6 Yntyq+/N0cbx1S61GjHzwjABKsHh9MYq4MJsRqKZT6L6gLqceGHZNN2KtUvHQliSc8cTlH5+QwW KZNy1iYcSq0TqNBVyO6+MSm9RPRLNhpQAD1oAYS+kXPw5W6hd0uPdiaT3U6gCdcrkE0/tZI1g8e DytXW8s/hWuSzd6Ie7LBwhPBg2KFI= X-Gm-Gg: ASbGncsQ0qItYHJDkqMYckn7wZZ0kZdYwM3B5Cg3/uPVvMmvoXBxVek+XoY4Qry8Ynz WvLvGNEN1DWQXodan4vzKyLfg0Eaev0p/L3pMMRsGbIn9EIAKB8mEywyzkPLkWp9UxqOCPw2X5j LC8L0= X-Received: by 2002:a05:6512:239e:b0:553:2ed1:ab1e with SMTP id 2adb3069b0e04-553e3c0683bmr505130e87.46.1750400010011; Thu, 19 Jun 2025 23:13:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGH4g5z39YT/GJpNxPkdKTXDg17aIrhd/D007WVzIXQTfClNJBfmh3YvsYiNTwz+uEo5UDB2z9coqbY70UMhnw= X-Received: by 2002:a05:6512:239e:b0:553:2ed1:ab1e with SMTP id 2adb3069b0e04-553e3c0683bmr505111e87.46.1750400009578; Thu, 19 Jun 2025 23:13:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mario Casquero Date: Fri, 20 Jun 2025 08:13:17 +0200 X-Gm-Features: AX0GCFvqt2A2D33JItMcp-_xGgCqB-8XDFV7THnllqE6YY7C7ZYKwaZco7UWRac Message-ID: Subject: Re: [PATCH 1/2] selftests: khugepaged: fix the shmem collapse failure To: Baolin Wang Cc: akpm@linux-foundation.org, david@redhat.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org, shuah@kernel.org, ziy@nvidia.com, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: ExzL6yNEJrIkDLUoKK6L4ag9GCxj0u1Lpb_kXlhypes_1750400010 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 2AD7520008 X-Rspamd-Server: rspam10 X-Stat-Signature: wgpc4hp4mmjowgd6j1o4d1ccijpz83ni X-HE-Tag: 1750400015-246328 X-HE-Meta: U2FsdGVkX18fq0tGd8IQLCyNho/2YOeeqW59AqiSYso7DL1Y8iiAvgCYUtq/jRHRaqz5UGJcelSTp16atfwKl3UvrFQEqd1OuOA+vmS756EMzY5qMv3uYHDVv2iTnl8uVkbQEn46gdsj5fveu6pS/lHpozYXyS3CosCPsm84i4CxFwXQtx9g9V9LxwrPQCyMETcx4gtBYQH6OpMVXP2RXMFoS6ZWFKq55FIQazP1iwPlnFay+7c44E8h5/0MWYDHOfc/C3uNie4bExEQnaBw/OguqDIlO0noxeWirdsEMRpZS+9Nm+QzW0D695VrxF1bl4E3yOaILdRwkM2WfDYo+ZaPft3I1DXpRfHxAZEQK5FdJCNxg5d8hKcGTt8Es6NbqsPy8+FVrLriGklcYzrMAIzIghC/teNtGSpPe11tmjXqFfuRnyh63PkHtjnPc1Ftre6IQll/ao46OwzNXYNAN2kWq/nctHyv5RvHndu4BVwJA47gukSRcauPKjNKKOHVC8OV5IKA7+jJIYGW5mz5oqVzoLAZzfPXz4/Uu26CK3qksH7Tyh98Y16AVc6YoTLAT76VJll+63btQMwBjnCVprvb/oX9fs4hPyVt52lX/grwMCzr4+/YVReBEChbiil87gSNGdmWOG0VcpW8He4ODBAiQ1JE5sNrtWPBAv/1RzeI40Ya8TzIubzN0Ysf/HZ1MJM5Lj1+atLvQvYODsWTGCywqfP+XSlaFO/WCitefJRu/mYlxRtJ+uOiWBC0x2iHfmKHhzzHbatquXrCJg136hor179LQtqEFbwo6Z790I0RbIJyiHxHSvi7duaNG8vXyvCSV9hUeVq4v9d+cQghNuQjhi9pqBDt4dFJkOm7s5SVpJjRpfroFR//pIZbUZRageyysgznvAnidYmTwNxY8WyfHGgXzEAusWLC/ZxnbrhbN3bu1TRYTV7hEoiYu+w7tYpYZLiMKTwkIQItlYQ jAFEHS45 9iiMisDdBnWvgFjic4VsEVQs0+5Q1mrIfw/BKX8uncGVZFT+rLlqGz5ZEOMosicAWT2dGm4B8R4H8AMeGlFURltlmThcq0ipJKSggRRnSe5eLVO+TO+UcEoG4Hc3lVWqo2+QazcVJOv3fCEXcgyd31Ie3H5RtkDFFD1h8GBRcQeaF62ZKZjYqxtTBwkGEnjiBe9H9R7753I+m33DhVxUdwvvxCmyh7hrziEOQA/iMTiib3tBQ9UqTnoxe1P6TuVyXuM+2UmoCYZwIFHFIQGSMd8csKV1izdZlfUv0CfcHwZwnT+Q= 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: This patch has been successfully tested. All the khugepaged shmem tests pas= sed. # ./khugepaged khugepaged:shmem Save THP and khugepaged settings... OK Allocate huge page on fault... OK Split huge PMD on MADV_DONTNEED... OK Run test: collapse_full (khugepaged:shmem) Collapse multiple fully populated PTE table.... OK Run test: collapse_single_pte_entry (khugepaged:shmem) Collapse PTE table with single PTE entry present.... OK Run test: collapse_full_of_compound (khugepaged:shmem) Allocate huge page... OK Split huge page leaving single PTE page table full of compound pages... OK Collapse PTE table full of compound pages.... OK Restore THP and khugepaged settings... OK Tested-by: Mario Casquero On Thu, Jun 12, 2025 at 5:55=E2=80=AFAM Baolin Wang wrote: > > When running the khugepaged selftest for shmem (./khugepaged all:shmem), > I encountered the following test failures: > " > Run test: collapse_full (khugepaged:shmem) > Collapse multiple fully populated PTE table.... Fail > ... > Run test: collapse_single_pte_entry (khugepaged:shmem) > Collapse PTE table with single PTE entry present.... Fail > ... > Run test: collapse_full_of_compound (khugepaged:shmem) > Allocate huge page... OK > Split huge page leaving single PTE page table full of compound pages... O= K > Collapse PTE table full of compound pages.... Fail > " > > The reason for the failure is that, it will set MADV_NOHUGEPAGE to preven= t > khugepaged from continuing to scan shmem VMA after khugepaged finishes > scanning in the wait_for_scan() function. Moreover, shmem requires a refa= ult > to establish PMD mappings. > > However, after commit 2b0f922323cc, PMD mappings are prevented if the VMA= is > set with MADV_NOHUGEPAGE flag, so shmem cannot establish PMD mappings dur= ing > refault. > > To fix this issue, we can set the MADV_NOHUGEPAGE flag after the shmem re= fault. > With this fix, the shmem test case passes. > > Fixes: 2b0f922323cc ("mm: don't install PMD mappings when THPs are disabl= ed by the hw/process/vma") > Signed-off-by: Baolin Wang > --- > tools/testing/selftests/mm/khugepaged.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/self= tests/mm/khugepaged.c > index 8a4d34cce36b..d462f62d8116 100644 > --- a/tools/testing/selftests/mm/khugepaged.c > +++ b/tools/testing/selftests/mm/khugepaged.c > @@ -561,8 +561,6 @@ static bool wait_for_scan(const char *msg, char *p, i= nt nr_hpages, > usleep(TICK); > } > > - madvise(p, nr_hpages * hpage_pmd_size, MADV_NOHUGEPAGE); > - > return timeout =3D=3D -1; > } > > @@ -585,6 +583,7 @@ static void khugepaged_collapse(const char *msg, char= *p, int nr_hpages, > if (ops !=3D &__anon_ops) > ops->fault(p, 0, nr_hpages * hpage_pmd_size); > > + madvise(p, nr_hpages * hpage_pmd_size, MADV_NOHUGEPAGE); > if (ops->check_huge(p, expect ? nr_hpages : 0)) > success("OK"); > else > -- > 2.43.5 > >