From patchwork Thu Jul 27 21:21:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yun Levi X-Patchwork-Id: 13330741 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 B59C5C00528 for ; Thu, 27 Jul 2023 21:23:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E76176B0075; Thu, 27 Jul 2023 17:23:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E260B6B0078; Thu, 27 Jul 2023 17:23:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA0A76B007B; Thu, 27 Jul 2023 17:23:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B66496B0075 for ; Thu, 27 Jul 2023 17:23:09 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 701681C9136 for ; Thu, 27 Jul 2023 21:23:09 +0000 (UTC) X-FDA: 81058667298.25.4F2B14E Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf28.hostedemail.com (Postfix) with ESMTP id 98240C0013 for ; Thu, 27 Jul 2023 21:23:07 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=HEo5AGgG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of ppbuk5246@gmail.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=ppbuk5246@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690492987; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=DvlsOnR4Pls28Go9VLQiPdtzYKx4bsGyZo1fzogJdIc=; b=ZgC4g9a0JxH1jp+4sxQgQlmaorLA3+bPoL/0S0zI62lDhzqZGUjDFj6Oqua/JFn9RTDe8l 5kcwfkf3FJPDG7iK0BIOos1bGnX0B5ktmtsJa5vEcJe/Do5zVVv4lUIPsn7nVSt1IMGIDQ Rj+a0tVhm39DCyaQ9FuDe26ogSYpVUg= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=HEo5AGgG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of ppbuk5246@gmail.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=ppbuk5246@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690492987; a=rsa-sha256; cv=none; b=kINnZDDl+ZkMYEp+CcfbRabzapbSdvCRvScp0g+I8LT54JDKHDIdoXcCsWqLvo9a4+ye8k iBw0QcB68dQFWseji53Z4TOsWy8A2TFdZ7kHChNXzyszpLrICY7pwh2m0Enm9bqY0W0/4O suC98fqoBzRFBZQbRDp9ZOPVTF/7E1g= Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-3174aac120aso1451646f8f.2 for ; Thu, 27 Jul 2023 14:23:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690492986; x=1691097786; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=DvlsOnR4Pls28Go9VLQiPdtzYKx4bsGyZo1fzogJdIc=; b=HEo5AGgGQCeVahhOXRNMbQ3Ii99AWr2j5kKcx0+1rZ3TKtxvVaxCsey1glTtNuAomp gPR2o5UKERvaniUo5rIrk+rV7tfB8W3adLf0d7IctsrTWzVKUbb+9fnEfpVpzy0MIMIe yHjmsYtbScZPKDRc43I9VrFuNdqMut6jrTSLbCM96dcJ4q4Q0uOx8EAbuxPqf9cq5xG6 oZyx8f5LmTwTsCrE18Zup43+xGtcAh1EY7gja3G/Gmw0xRVadpD++yvnXhhug+Ckgmki m3JgAyrRDz3iJPA881bHYw9GOhSkmTwJMtGjaur0IGfPg9zjXC9Ir1vYhBzBe0q59nkC /vdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690492986; x=1691097786; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DvlsOnR4Pls28Go9VLQiPdtzYKx4bsGyZo1fzogJdIc=; b=Rjvf21tlSLYNOlf8pu8qd7CPy3pz3kFYd3dfor46kifJvU8bsbvlMkE5cOC/RemSnQ p/cmedQht+dNIWjJOEoVASXuBZ9phn/LRRtVxWW4JFpcklRLfRmSQY0Dvzu5cLp9j7/+ lCpYlyhJmnnPr8Pe+JO3oEZnfJIIrbN7nLgEW86wrMrT88c86d+NOX6bDOxHCOj7WEuY BEE1Fj71h+I25sFWrcSQpHEXvIgyFyrApsxtaU0q6nNr2wTsN/cvOat9sKfg/HoXTj9x N7NmpSf31HYLiD+ZBuzoQZEFn12+kqzv1H9Qs5wK4GWj7nOzwTSqnQtvPn2MKYK0rd+B 1EcA== X-Gm-Message-State: ABy/qLbU7t4epZQRYQAg4WFnyiCLfYrFu1FkOyRrBFYI8m1c8UXtXJbg cBED5c3l+g+ZU+G1qbwPJJ/tM81boZJOow== X-Google-Smtp-Source: APBJJlFj/vFiLMgc/lDsstP6er7i1+BHaOLLVifczT1cA84N9TCP66BkQHw5K/0qKwlj0hBOy3AKOg== X-Received: by 2002:adf:fe4b:0:b0:316:f25f:eb4 with SMTP id m11-20020adffe4b000000b00316f25f0eb4mr218377wrs.60.1690492985888; Thu, 27 Jul 2023 14:23:05 -0700 (PDT) Received: from localhost.localdomain (host31-52-141-59.range31-52.btcentralplus.com. [31.52.141.59]) by smtp.gmail.com with ESMTPSA id u20-20020a05600c00d400b003faef96ee78sm5539194wmm.33.2023.07.27.14.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jul 2023 14:23:05 -0700 (PDT) From: Levi Yun To: sj@kernel.org, akpm@linux-foundation.org Cc: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Levi Yun Subject: [PATCH v2] damon: Use pmdp_get instead of drectly dereferencing pmd. Date: Fri, 28 Jul 2023 06:21:57 +0900 Message-Id: <20230727212157.2985025-1-ppbuk5246@gmail.com> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: ktsbmtxnt9sx9en7e94ryp5s1cnw74mq X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 98240C0013 X-HE-Tag: 1690492987-816078 X-HE-Meta: U2FsdGVkX19E4JfD7HdDXa4yco1FyYrGIYlt09m40eOG+lr12AlV+0TStXvlct4SdEAIQ9JDGOYOlo7q7njN6EirCwaXO4Y2biu92ndwJAJ0GMzRXXObgWT4Mne8IOx/Pkzo3kq3rydQtumoObVQ3EpelbVmtOAIe6iquIzZyH9R6wkeCOF6LW+OYvJoY5EYElW28uPUbseMCOsEC02gtoJLTSSrG4sT+67/zd8nb6FU4FA95ypxBA2LKsT4SFuuhjoWhCRTaJp3xM2XoTsckEe4XnIQmhz2clos46ueEuvhF1M4B/3OwHNKcZu0xdwSEQwlS7gZNlecBwSWb3O2yIYUO8gq/06mptg96jSMh6j5inSyHJlWfblUWS+Wtyd6xqJw9x/7MzU1JAoY5DqPc9Zmz90OGyiGW+yI6AiLwfXXXXzSvwzuhmBZevXBbsOW3SJ0SS7btir7fh6Z4W6vrqu0SaS7k5SBkBbD0sVwtWWbWFxyY8bJ8K17ypjSE2APqoIAbcZYd6nnlx0xReWW9k3VGeTRxk776P02TaN3nlxme/HfDkw0nO1B/dSae5dxkt68exO/GIuRuKnebT98J07VxxPszx72pdTYeQODuxO8Ef9BM7u3MMO6rI8BGHHk0jJnIChORsMoPp3KmwIv0mzteWb26Ic2JafEbnP57a4wsrAF1XuQtt9uYTv1F/zdxZ/ytg0C16I45ewLDTLE42XZEP1hwGJ5lej6l/8mdxhLosB/ktP3dcOcSnMocbxkmcOMPkdsZwMMdCSKBC4F+1mRR2HIcnnlz5hbyGxIOBHsKOQ83YPYZ0BxKfyxullfvPLio2cj0pnUkpcx0xEP0tHVNQsEcCM6vueW4H7I5D9mYl+oec/FbRTjHy3K8puOhsA6rEqCC2aAWPsdW7TKepjRci4IFjgjiub69EZqz/k4A5P3EEXE3T5LbCmqWG00sh7ZwIx68bIjDDunM/K ruAyAkaB /W9vypKsM/hYxrUL+GPvbbPBiCjrKyE6vAPrtMsVd52y85kjV3kwMiimY0+Tr/l00ih8oqEGdiukGVpsJBg9DPDGzzB0ZI2Z570fm7gl3kfYmGjE0XTdbcOr/fUS//IFp//M1Eo/8Z1AYCjLbD5x3qzNGmERE6n3vOEQr5LjHSvZqTpcZxK5E4u4V0fvOOuWixbTJ8DagLo2elXbSobH1f7DYX23VZtRCa9qYE/xmYg0Dn/ia4r0s4KvfI4dObcfpOu0tRzut6t8JhOb4mh2Q0h+eUH4yuwNdRxkKr0V1LzsDTlHGFc45lHjJyWtkoIKSMkRW0tCIELSS0HX8S1wCt7sELjb56E/K7L6FH3RNVUAzOKdP/dGWrHG2+uyCoOR0GhS3CpQGnY6svPgmbwp6dgs+gcwxCXeBdfzE8LXMur0Qis9HzPaPF1s3OGbCiuAjpNT9FauicjrjngY0sp/xOtgSd/0j7/mwWgnA83jEWGPN0fQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000129, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: As ptep_get, Use the pmdp_get wrapper when we accessing pmdval instead of directly dereferencing pmd. Signed-off-by: Levi Yun Reviewed-by: SeongJae Park --- mm/damon/ops-common.c | 2 +- mm/damon/paddr.c | 2 +- mm/damon/vaddr.c | 23 +++++++++++++++-------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c index e940802a15a4..ac1c3fa80f98 100644 --- a/mm/damon/ops-common.c +++ b/mm/damon/ops-common.c @@ -54,7 +54,7 @@ void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE - struct folio *folio = damon_get_folio(pmd_pfn(*pmd)); + struct folio *folio = damon_get_folio(pmd_pfn(pmdp_get(pmd))); if (!folio) return; diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 40801e38fcf0..909db25efb35 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -94,7 +94,7 @@ static bool __damon_pa_young(struct folio *folio, struct vm_area_struct *vma, mmu_notifier_test_young(vma->vm_mm, addr); } else { #ifdef CONFIG_TRANSPARENT_HUGEPAGE - *accessed = pmd_young(*pvmw.pmd) || + *accessed = pmd_young(pmdp_get(pvmw.pmd)) || !folio_test_idle(folio) || mmu_notifier_test_young(vma->vm_mm, addr); #else diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index 2fcc9731528a..d01cc46f4bf4 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -301,16 +301,19 @@ static int damon_mkold_pmd_entry(pmd_t *pmd, unsigned long addr, unsigned long next, struct mm_walk *walk) { pte_t *pte; + pmd_t pmde; spinlock_t *ptl; - if (pmd_trans_huge(*pmd)) { + if (pmd_trans_huge(pmdp_get(pmd))) { ptl = pmd_lock(walk->mm, pmd); - if (!pmd_present(*pmd)) { + pmde = pmdp_get(pmd); + + if (!pmd_present(pmde)) { spin_unlock(ptl); return 0; } - if (pmd_trans_huge(*pmd)) { + if (pmd_trans_huge(pmde)) { damon_pmdp_mkold(pmd, walk->vma, addr); spin_unlock(ptl); return 0; @@ -439,21 +442,25 @@ static int damon_young_pmd_entry(pmd_t *pmd, unsigned long addr, struct damon_young_walk_private *priv = walk->private; #ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (pmd_trans_huge(*pmd)) { + if (pmd_trans_huge(pmdp_get(pmd))) { + pmd_t pmde; + ptl = pmd_lock(walk->mm, pmd); - if (!pmd_present(*pmd)) { + pmde = pmdp_get(pmd); + + if (!pmd_present(pmde)) { spin_unlock(ptl); return 0; } - if (!pmd_trans_huge(*pmd)) { + if (!pmd_trans_huge(pmde)) { spin_unlock(ptl); goto regular_page; } - folio = damon_get_folio(pmd_pfn(*pmd)); + folio = damon_get_folio(pmd_pfn(pmde)); if (!folio) goto huge_out; - if (pmd_young(*pmd) || !folio_test_idle(folio) || + if (pmd_young(pmde) || !folio_test_idle(folio) || mmu_notifier_test_young(walk->mm, addr)) priv->young = true;