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 CC495C4345F for ; Tue, 30 Apr 2024 02:13:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 41A026B0095; Mon, 29 Apr 2024 22:13:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C8916B0096; Mon, 29 Apr 2024 22:13:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28F796B0098; Mon, 29 Apr 2024 22:13:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0A29A6B0095 for ; Mon, 29 Apr 2024 22:13:55 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id AF3CE1C0B4F for ; Tue, 30 Apr 2024 02:13:54 +0000 (UTC) X-FDA: 82064577588.08.49C2A86 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf06.hostedemail.com (Postfix) with ESMTP id CADCD180003 for ; Tue, 30 Apr 2024 02:13:52 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=npbprW6d; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714443232; 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=xWExLD5ARGmSPYsKb1Jv6jWFNXY7UPECUkAyh7Qq9Hc=; b=SkX9jzc+xcKz7hbJ0n/Z1LFnFDS6p/K+dAip91xlF8sLR/JB4Q751zb1BbC3pQ/mSwwJXd X2zG70YQpYjjz/buRKHGsz41/M16T0vx8+FE9MTOGxh3zljjUInVcUZSTKouWM3lFT17vb 9wVf/zyceyUPYyjbjiBYjwzZbq5+Frw= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=npbprW6d; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714443232; a=rsa-sha256; cv=none; b=0O/IcZO7xS+1phgUzsig2wTBi6o5CFBcHErZW8TaV35teiISqDxdVdtcZnWk/fR9n4/Gi3 VMfystyOZEkX8rV1Is9XueQMogUqEVgN2LAJtyoCdfXwlqP3Jsnb2FF4VOD1gEH+mXvtp6 mf5NI06ot3sPFeBekCThJb2p02cMpVo= Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-57222fc625aso5781249a12.3 for ; Mon, 29 Apr 2024 19:13:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714443231; x=1715048031; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=xWExLD5ARGmSPYsKb1Jv6jWFNXY7UPECUkAyh7Qq9Hc=; b=npbprW6ddkLwaKda57n0w2jNT52k3M8KmS2SRv7XrLf/M43qcHmpvuF3tvHME0tByn 3NyUtx59LXXvd+RIXzgYo9mOimU+xjYoHRNcrOxgEabyPlodNEi/kUphyMFPWlopDQck /7EJa9o75QPsO0QM+oWCz2qMRVHnbKIUiSTy8W+D3Oqw/FzVryNshfYy0dnP8jqlGG6v /XtPmbSyYJdyyj09FmwOxjSy5sKgYq83R4jv2A/Xtb0D87qjXqugIh/RvzpjVY9dBFx6 NDiiI10MEawslyOaJOQscp6oE6aDIo2OOtp4htb2HDJxnmwvJWSb0BnIt117fa8v2+GW +crA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714443231; x=1715048031; 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=xWExLD5ARGmSPYsKb1Jv6jWFNXY7UPECUkAyh7Qq9Hc=; b=chNraS2ChXdJUIfLgc6rgSmQ44apS/f7AC7mxbXG8zimQSLNk/xcu2sifHagX5KI5o s3WW7z4nv0F/mUl/6ooD5G15yvfTYQJpPCSyh6mqIP6gtHkxcjc5Km1+YJXEJ79dOqMq hY0LniUGtEpjs58WGd9LMaetdyl+WAuPydGULaLJzivQ+oo4QRQfL4Nbzos2s4PFOmNo C55PjiuTTLG5gJB4TnI0uWQOUHAwgyJXrb9xmLlnby3gehiqbhsAsa9dweTnPnsEOecH fks9hUHttD3Rz7iFyZ+OexKxiojwY3N7bG/zEFM1iyHbq4Ow5bXfCwC50qpTq+5+MqGm QNRA== X-Forwarded-Encrypted: i=1; AJvYcCVczq6WKfMq2nq8M9zcAjKDq64yhL769tKtw+7TB5sT6VjJkaFpwjlcENRkq2Lcs/LKJizM3yOZz/7E6kV3GpVlDl8= X-Gm-Message-State: AOJu0YyaUQ1vl6sPlyAZ559Lj221H1vx6m+vtAEUTyUQsbPuCpEjhCI+ VG8sMVoZ05XFFGlkxBCuiq9XAF1d0YtwNLKl8WGb0Px59OY3G5uJmgh07TAjQJDIu6UTV9Wt8Fz +r7eco4SJnZazq6wRdvGvinnmU3I= X-Google-Smtp-Source: AGHT+IHQOOpa1TEXXVWdv/lx6hpGrJhugscR6HJwDLIOVRu212k+yL7MTatAbLul1X6stK3NsU/kxP5q6qZGI6CB300= X-Received: by 2002:a50:9f61:0:b0:572:6aaf:e0d1 with SMTP id b88-20020a509f61000000b005726aafe0d1mr8522623edf.14.1714443231067; Mon, 29 Apr 2024 19:13:51 -0700 (PDT) MIME-Version: 1.0 References: <20240429132308.38794-3-ioworker0@gmail.com> <20240429202040.187453-1-sj@kernel.org> In-Reply-To: From: Lance Yang Date: Tue, 30 Apr 2024 10:13:39 +0800 Message-ID: Subject: Re: [PATCH v3 2/3] mm/rmap: integrate PMD-mapped folio splitting into pagewalk loop To: Andrew Morton Cc: SeongJae Park , willy@infradead.org, maskray@google.com, ziy@nvidia.com, ryan.roberts@arm.com, david@redhat.com, 21cnbao@gmail.com, mhocko@suse.com, fengwei.yin@intel.com, zokeefe@google.com, shy828301@gmail.com, xiehuan09@gmail.com, libang.li@antgroup.com, wangkefeng.wang@huawei.com, songmuchun@bytedance.com, peterx@redhat.com, minchan@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: CADCD180003 X-Stat-Signature: xbbxs7t8x9tozudzxyu3gtymfx8nrrnh X-Rspam-User: X-HE-Tag: 1714443232-472656 X-HE-Meta: U2FsdGVkX19c90sHwut9mZ8p17D3aKNDbe8okhzWcJ/FFP/5rr7lS3sxFFhqtUGiZP+ggctQMO7MLaJpYhrnW7vEj2n8cwCfGp76V1vVgZ98m8VhF0GPCwtm67ZpqdRSJEt34yEEqpOYVR1aS+mUe2YtfjLrYno0G2ClGIMbVwDi2bkIbSuZnWn5IWW1PXxCqkdHhCZ8jAuIh7Vs8fuSv1bq82q2togHSpBQiQRGhbdj5JU1KHEhNy9bVgFyNtKiBPGLyStnmb35/vG/JfIYjBGNgB8NBGgC6CecpukbfawdkNsMSsfoDMk0sSbqi3sQ/yT1BHiDVNyNYT6PAXGMZwpK7WTKEkK2HW3oTEQaM74SQdG4Jotc9ROGQ3VRWQ84Boaj3O0Hgin15SmeK3dX49Z8xceRWqYLCY8JM+t8pLqH8PfIi0bIrs0j/rbJJdcjP3rs7AfDX2WDLmecbp+NbA21vQDSKgALeBZQb5R3OaRfLFjvWcEk4dOmjtXCW0cAZ2SH6SffViBYzvh786qMpa4jipxHy+moBbJ+jJe9tE1ek1+ENhnve3uVqG6N4cWx/0hgMaGJbgswbEgA/JHuBrL6lYzMdLtVfV8TkWh/sgiYQk2lrrCBbywZMUXvF9khuqLiZIGgMmVrIvlN55chO8kV5mst+6dlAOjsJ6/NcaWhHLGabVKt7iYx/B5J/azZR57crm9omBxgOqa4O+5x6TnmBhmdy2NLoTWHTaNNjI/qW+YwyFiFxpuXqkTchrYVxjldxRtgRad1iWS9vROQv3fWwU2CqleAzn6jLevKSPIjW+kV53tioMTznlEs2XkMN5J2aAs4SWDdm/vnHRVTe1/vgf8Z8ob8P5649AUfZtM5I91a15itkJeAONTjBOGH1OKPd1OyzgLJv+Wpx/0Qf9AYVEjik9DCG+Qr+KPHTJd1FSG5l8wYHRnAJjwM/pKqKhD2kyWxssnrr8+ESpI lLpXjofs KqvItOglHu1FED1mCfoCUBApzgCO/XjbGL8C0iwrZRHk5yiSSL0hVXgmnGA9f6Nu1c5HJ9tN4ASs0xr8Ok4jvBFngVR1U6kBzwOqis3kHTennWNRSdE+vDnr7fgS9R7qekIdIrGxlIcwHJfCxlAFTQcnbPoUiDP4tSAI+aX5fwTwePWnDgORBlEo0WcRNCxpDX9PdAwH3/5GnYc+zH3iKkz9MPUnWc//VBSWL5H0P+0VeSxndEfUs578/Y0z36fLkvgykq8e+Vht4cpmA4j0DscfQtLvWBaIgP7OKvrUh2oUEyQ0YyJOYrJON0IItnLO9lvhJcNlB/prFATb/F6R8+Tfo3uXdaqKEeZ5qPGGhPFsN0hNPQF271pmpdqHLST6FVgFPys0Y8vhvZT9PhP6t/NuJOZN+LERuwUbW2bBeM2hrMFDNJ918vuPYi1qHtEHhtIOgws0bPJ6c+LicKOASXmYvTMb0VRWQWMu6 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 Tue, Apr 30, 2024 at 10:03=E2=80=AFAM Lance Yang w= rote: > > Hey SJ, > > Thanks a lot for reporting! > > On Tue, Apr 30, 2024 at 4:20=E2=80=AFAM SeongJae Park wro= te: > > > > Hi Lance, > > > > On Mon, 29 Apr 2024 21:23:07 +0800 Lance Yang wro= te: > > > > > In preparation for supporting try_to_unmap_one() to unmap PMD-mapped > > > folios, start the pagewalk first, then call split_huge_pmd_address() > > > to split the folio. > > > > > > Suggested-by: David Hildenbrand > > > Signed-off-by: Lance Yang > > > --- > > > include/linux/huge_mm.h | 2 ++ > > > mm/huge_memory.c | 42 +++++++++++++++++++++------------------= -- > > > mm/rmap.c | 26 +++++++++++++++++++------ > > > 3 files changed, 44 insertions(+), 26 deletions(-) > > > > > [...] > > > diff --git a/mm/rmap.c b/mm/rmap.c > > > index 7e2575d669a9..e42f436c7ff3 100644 > > > --- a/mm/rmap.c > > > +++ b/mm/rmap.c > > > @@ -1636,9 +1636,6 @@ static bool try_to_unmap_one(struct folio *foli= o, struct vm_area_struct *vma, > > > if (flags & TTU_SYNC) > > > pvmw.flags =3D PVMW_SYNC; > > > > > > - if (flags & TTU_SPLIT_HUGE_PMD) > > > - split_huge_pmd_address(vma, address, false, folio); > > > - > > > /* > > > * For THP, we have to assume the worse case ie pmd for invalid= ation. > > > * For hugetlb, it could be much worse if we need to do pud > > > @@ -1650,6 +1647,10 @@ static bool try_to_unmap_one(struct folio *fol= io, struct vm_area_struct *vma, > > > range.end =3D vma_address_end(&pvmw); > > > mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma->vm_mm= , > > > address, range.end); > > > + if (flags & TTU_SPLIT_HUGE_PMD) { > > > + range.start =3D address & HPAGE_PMD_MASK; > > > + range.end =3D (address & HPAGE_PMD_MASK) + HPAGE_PMD_SI= ZE; > > > + } > > > > I found the latest mm-unstable fails one[1] of my build configuration > > with below error message. And 'git bisect' points this patch. > > Thanks for taking time to 'git bisect' and identify this bug! > > > > > CC mm/rmap.o > > In file included from : > > .../linux/mm/rmap.c: In function 'try_to_unmap_one': > > .../linux/include/linux/compiler_types.h:460:38: error: call to '__= compiletime_assert_455' declared with attribute error: BUILD_BUG failed > > 460 | _compiletime_assert(condition, msg, __compiletime_assert_,= __COUNTER__) > > | ^ > > .../linux/include/linux/compiler_types.h:441:4: note: in definition= of macro '__compiletime_assert' > > 441 | prefix ## suffix(); \ > > | ^~~~~~ > > .../linux/include/linux/compiler_types.h:460:2: note: in expansion = of macro '_compiletime_assert' > > 460 | _compiletime_assert(condition, msg, __compiletime_assert_,= __COUNTER__) > > | ^~~~~~~~~~~~~~~~~~~ > > .../linux/include/linux/build_bug.h:39:37: note: in expansion of ma= cro 'compiletime_assert' > > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(co= nd), msg) > > | ^~~~~~~~~~~~~~~~~~ > > .../linux/include/linux/build_bug.h:59:21: note: in expansion of ma= cro 'BUILD_BUG_ON_MSG' > > 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") > > | ^~~~~~~~~~~~~~~~ > > .../linux/include/linux/huge_mm.h:97:28: note: in expansion of macr= o 'BUILD_BUG' > > 97 | #define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) > > | ^~~~~~~~~ > > .../linux/include/linux/huge_mm.h:104:34: note: in expansion of mac= ro 'HPAGE_PMD_SHIFT' > > 104 | #define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) > > | ^~~~~~~~~~~~~~~ > > .../linux/include/linux/huge_mm.h:103:27: note: in expansion of mac= ro 'HPAGE_PMD_SIZE' > > 103 | #define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1)) > > | ^~~~~~~~~~~~~~ > > .../linux/mm/rmap.c:1651:27: note: in expansion of macro 'HPAGE_PMD= _MASK' > > 1651 | range.start =3D address & HPAGE_PMD_MASK; > > | ^~~~~~~~~~~~~~ > > > > I haven't looked into the code yet, but seems this code need to handle > > CONFIG_PGTABLE_HAS_HUGE_LEAVES undefined case? May I ask your opinion? > > > > [1] https://github.com/awslabs/damon-tests/blob/next/corr/tests/build_a= rm64.sh > > I'll fix this bug and rebuild using the config you've provided above. Hey Andrew, Could you please temporarily drop this series from the mm tree? I'll fix this bug in the next version. Thanks, Lance > > Thanks again for reporting! > Lance > > > > > > > Thanks, > > SJ > > [...]