From patchwork Mon Jun 20 02:34:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 12886944 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 75E97C43334 for ; Mon, 20 Jun 2022 02:35:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E3BF76B0071; Sun, 19 Jun 2022 22:35:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DEBE26B0073; Sun, 19 Jun 2022 22:35:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CDAB36B0074; Sun, 19 Jun 2022 22:35:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BD3B16B0071 for ; Sun, 19 Jun 2022 22:35:01 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 9A348120254 for ; Mon, 20 Jun 2022 02:35:01 +0000 (UTC) X-FDA: 79597046802.28.EB02195 Received: from out30-43.freemail.mail.aliyun.com (out30-43.freemail.mail.aliyun.com [115.124.30.43]) by imf26.hostedemail.com (Postfix) with ESMTP id E52C114000B for ; Mon, 20 Jun 2022 02:34:57 +0000 (UTC) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0VGpSCch_1655692491; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VGpSCch_1655692491) by smtp.aliyun-inc.com; Mon, 20 Jun 2022 10:34:52 +0800 From: Baolin Wang To: sj@kernel.org, akpm@linux-foundation.org Cc: mike.kravetz@oracle.com, songmuchun@bytedance.com, baolin.wang@linux.alibaba.com, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm/damon: Use set_huge_pte_at() to make huge pte old Date: Mon, 20 Jun 2022 10:34:42 +0800 Message-Id: <1655692482-28797-1-git-send-email-baolin.wang@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655692501; a=rsa-sha256; cv=none; b=RaBaqforCzGQJ21+ehMARiLZNX4Su9v6RloJBhWn9zetPbWSI3TxN2YjDEq6kinWmFg5vE 05dFDSyggxTpFhJUW1NN5AL7K7ktLxY/YdYhIS2wvsCkVLflVH13FxLq6fVNbOkyBnHvQf bs12YtTYTqaXqvoem5E4i1NC0r5qEl8= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf26.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.43 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655692501; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=bOwJ2FTXkKF/PE13qHxylnMBv8yRXm5HohOh5YwOoGA=; b=KNz0MzXWgSEvCdLdz0mONVxIm2OjpV66zfEYivHw4mOu1xPVIdzsTSdSs7xMpBvG3RVfdB LDkx4ViQhiFF9UXLqm9qgf47jjvU68Kymuuc3sRgcVxI1iFoiRU3ueQdWMcHiJ5N2R7pMD xAC3+IDCtdq2M3YW67FHJJBTvDHP0w8= X-Rspamd-Server: rspam01 X-Rspam-User: Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf26.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.43 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com X-Stat-Signature: 3duzepy655tdedhkcshw5gdp33733sb7 X-Rspamd-Queue-Id: E52C114000B X-HE-Tag: 1655692497-411779 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: The huge_ptep_set_access_flags() can not make the huge pte old according to the discussion [1], that means we will always mornitor the young state of the hugetlb though we stopped accessing the hugetlb, as a result DAMON will get inaccurate accessing statistics. So changing to use set_huge_pte_at() to make the huge pte old to fix this issue. [1] https://lore.kernel.org/all/Yqy97gXI4Nqb7dYo@arm.com/ Fixes: 49f4203aae06 ("mm/damon: add access checking for hugetlb pages") Signed-off-by: Baolin Wang Reviewed-by: SeongJae Park Acked-by: Mike Kravetz Reviewed-by: Muchun Song --- mm/damon/vaddr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index 5767be72c181..d24148a8149f 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -337,8 +337,7 @@ static void damon_hugetlb_mkold(pte_t *pte, struct mm_struct *mm, if (pte_young(entry)) { referenced = true; entry = pte_mkold(entry); - huge_ptep_set_access_flags(vma, addr, pte, entry, - vma->vm_flags & VM_WRITE); + set_huge_pte_at(mm, addr, pte, entry); } #ifdef CONFIG_MMU_NOTIFIER