From patchwork Tue Apr 8 13:16:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 14043009 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 875BAC3600C for ; Tue, 8 Apr 2025 13:16:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8226C6B0006; Tue, 8 Apr 2025 09:16:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CEC06B0007; Tue, 8 Apr 2025 09:16:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6BDD56B0008; Tue, 8 Apr 2025 09:16:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4FAD46B0006 for ; Tue, 8 Apr 2025 09:16:50 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 8C22380EA1 for ; Tue, 8 Apr 2025 13:16:51 +0000 (UTC) X-FDA: 83310926622.29.7884126 Received: from out30-118.freemail.mail.aliyun.com (out30-118.freemail.mail.aliyun.com [115.124.30.118]) by imf17.hostedemail.com (Postfix) with ESMTP id A9BEE4000C for ; Tue, 8 Apr 2025 13:16:48 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=RBGgDNfP; spf=pass (imf17.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.118 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744118209; 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=V2Se/BLxZ964m2iPoAIaOM44L2WT/X+H4B3BvY/RXls=; b=70qvA7w+WpAoWELTdJqJOXGR+FZ/0ucdcSfPnOz7ZJ7Y+GL3nHOLtffSpanKQAmFV9NnLf ba2YpM2j/CS4MQi3Tq209mPQzujb7EKWULVTfI6qgSlZv8AbIiY7TN3CySnYBG0FBKW/Fj W1UW4nUKLIp+niuW7Ujf8gjCuY6g+NQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744118209; a=rsa-sha256; cv=none; b=CzfnJ/PnhRI6qj6FJi6kH8IVfvEr0l1Ru5GS/eWzZ78GjjjM7RuWUo26uZwJNqK3U+CB2M QQEilgsBUxzPcW/RepkLmi3eJ0YJDguF8fhv68N16kQInCVtOKmXJD2HUNuEk9ZdexJn0h 83NygShCBh/Ccos7+rXy86j6Fh9wOgg= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=RBGgDNfP; spf=pass (imf17.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.118 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1744118204; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=V2Se/BLxZ964m2iPoAIaOM44L2WT/X+H4B3BvY/RXls=; b=RBGgDNfP78B8dV2ud6aJXPFMTm8KgYoDlI4HZgUKOQ455/iKsuooQ7zL58Dp8ZeWp/NCdp9BKhWg0646yzIYHdoxd9ylXiVW2hOqRGN23n3iIZhaJRZq1Ad2RFu1tweZFmLfWvT9odfPqbR4RLcCkNIFY1D1d/3WtrNHRzFIDzc= Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WWFZiPw_1744118201 cluster:ay36) by smtp.aliyun-inc.com; Tue, 08 Apr 2025 21:16:41 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: willy@infradead.org, david@redhat.com, 21cnbao@gmail.com, ryan.roberts@arm.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH] mm: huge_memory: add folio_mark_accessed() when zapping file THP Date: Tue, 8 Apr 2025 21:16:35 +0800 Message-ID: <34bab7a60930472377afbfeefe05b980d0512aa4.1744118089.git.baolin.wang@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 MIME-Version: 1.0 X-Stat-Signature: emat9rh3ses8wjngruofa1k5tcdh44wp X-Rspam-User: X-Rspamd-Queue-Id: A9BEE4000C X-Rspamd-Server: rspam08 X-HE-Tag: 1744118208-524974 X-HE-Meta: U2FsdGVkX1+OqR1Ejv+u+OkzLueWVVrDKSKijsmIKN8MtRZOTzHZi+yEyKs157iR2tDlPEbSIINWtvn3/tD8Sex5TI7zuoAGnfuLKkYX7WfqecRQPbOrmNaM39HgpwuTMvZnVZve+zZ8LTrluT5SS6lHkm0EwTDcetSilHoPRemMOKACyfB0gwD25s6SZQD5DO2OHm6qGhELf+v90cYcJ2NOj5tU4/lkXNNdW4tBOadFt2vPeUvcmsN2prUzSFD+u7HkPgXhhB3EQ5/0Wky/MubZAPaBiHHivCe51xvYt2Q0gjk2isjv4Fl22Th6pzBdD74BXG0g3QszeSMrPVCGkzh7aDxOwMn0cSZCatOYHfTpbN1Qd9hUK2De3kmrzBY7/DUC43h7db5mOFj1Z9lk3XEDWd7bAnIYMA6bYkbR0FaufNHUrkOkx4A+/+B2O/Aw3VZO2Egcm0okkaQalhERbLGmnN7WUnrWAMrluiErlLsJ2doN0ZbjoRXQQTP1KfaxRVuFv+LCMTxDtP/FcpHbHdIV2QdIPC5U6Pb+KvGKt46dAcyrDK+PxGMiTHLD/cbpl1ihCodTy9MBhkYjOnt/5dlDVE8z5cxRFK5H1HR+Vj/PV8FFpn34trAmQqXUyzKXuJsuoTX0I5zBv+LMOYsWcVIQgMsTiLM70BGeLkH1orqYGBJqJEOUz0YVZe4xXgEJbc3n/NG1cMqCAu1laaISC7M7QUhY9Xis0hb/thIIQIW6M15L+cNsv6I+N0f3B2zJvK8XsK5YyqarnjOM4O8SYsTWIUp6ZuttxmIgHBlQfu4HPNE/p9DZqOAABYOsC+XaX2Fe2a5tRfMbjPSCxLkT58PeL9EBTo6iCWGFYQ7MKmMzJN08rZSFc84QnqKXJD2QuPQ75SqTauFhayu48uvbLUWZROUVmqgECwqNjzJvVMJqoP5T8+whr1bhZJD178sZXkQmLaiE0i8T14/crE3 tiQwveUI dEI1rA5au4Z4fQV5jBZ4b8aOC9+YyYa/Z9uPLjARhRkSlMQevXLGlVM7fn8MH818IBcgKXxnjvnx0GCYk5IUmAzA57aUQA6+YoX8dA6zMudR8O7NRtbUpkais+0lfCSfeooRNq7Z5gzg6St2R80Fx/Ysj/bxaaAkaH+aR/P2HdvnPNNzOAX+dKZ7LDPT775WeaIY9N1Xx36EjheoxSjM3zJelU4QPC7PrwyAaRtDsvz6hRD8+ilMZGXLMGLp7kBBR6sjfnXd8k1UXiWM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.004362, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: When investigating performance issues during file folio unmap, I noticed some behavioral differences in handling non-PMD-sized folios and PMD-sized folios. For non-PMD-sized file folios, it will call folio_mark_accessed() to mark the folio as having seen activity, but this is not done for PMD-sized folios. This might not cause obvious issues, but a potential problem could be that, it might lead to more frequent refaults of PMD-sized file folios under memory pressure. Therefore, I am unsure whether the folio_mark_accessed() should be added for PMD-sized file folios? Signed-off-by: Baolin Wang Acked-by: Johannes Weiner Acked-by: Barry Song --- mm/huge_memory.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 6ac6d468af0d..b3ade7ac5bbf 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2262,6 +2262,10 @@ int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, zap_deposited_table(tlb->mm, pmd); add_mm_counter(tlb->mm, mm_counter_file(folio), -HPAGE_PMD_NR); + + if (flush_needed && pmd_young(orig_pmd) && + likely(vma_has_recency(vma))) + folio_mark_accessed(folio); } spin_unlock(ptl);