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 C5AB1C4167B for ; Wed, 6 Dec 2023 12:50:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CBE286B0075; Wed, 6 Dec 2023 07:50:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C6EAC6B0078; Wed, 6 Dec 2023 07:50:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B83B36B007B; Wed, 6 Dec 2023 07:50:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AD5666B0075 for ; Wed, 6 Dec 2023 07:50:57 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7D7BE8017A for ; Wed, 6 Dec 2023 12:50:57 +0000 (UTC) X-FDA: 81536378154.09.792067F Received: from out0-212.mail.aliyun.com (out0-212.mail.aliyun.com [140.205.0.212]) by imf18.hostedemail.com (Postfix) with ESMTP id 67BB51C0010 for ; Wed, 6 Dec 2023 12:50:54 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=antgroup.com; spf=pass (imf18.hostedemail.com: domain of henry.hj@antgroup.com designates 140.205.0.212 as permitted sender) smtp.mailfrom=henry.hj@antgroup.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701867056; 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; bh=QMfnJ3HF3hr4DsDd7QBDb3FOlVn7OU7k8vnj5i5pG8Y=; b=3gsgjS5CKOdKK2M6amrUD/ZhbyuE6yZLNxUnB6LYYZtxvjTn3UElZG/nd2aQCFmIgipZJS o5oIBaugV14btXUg9cNL5Ip6gSiGt55IaDdut7C3Tj8iK/Iscw5ns02Q7injiNUSQfgcsB 5n3BfwhEr7udVYnS1eyqA3yVryPF3HU= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=antgroup.com; spf=pass (imf18.hostedemail.com: domain of henry.hj@antgroup.com designates 140.205.0.212 as permitted sender) smtp.mailfrom=henry.hj@antgroup.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701867056; a=rsa-sha256; cv=none; b=zsWua8KsNwxguj/XWriureJkNmx0W7sKF+AuIccZJH4vURnaBY8j6KdgTRXBeJdxpHmWQO aouFkbNnVV7E1T3PgmMVQFPvKC/Q2hgn/ctk4nAqso7BmZmvsbg4LQB2+xNnxf15AXKfVV iETGDD53ujzlwZg7LOVLaO/S3o7hoJA= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R781e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018047213;MF=henry.hj@antgroup.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---.Ve3FSsq_1701867048; Received: from localhost(mailfrom:henry.hj@antgroup.com fp:SMTPD_---.Ve3FSsq_1701867048) by smtp.aliyun-inc.com; Wed, 06 Dec 2023 20:50:48 +0800 From: "Henry Huang" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: "=?UTF-8?B?6LCI6Ym06ZSL?=" , "=?UTF-8?B?5pyx6L6JKOiMtuawtCk=?=" , , "Henry Huang" Subject: [RFC v2] mm: Multi-Gen LRU: fix use mm/page_idle/bitmap Date: Wed, 06 Dec 2023 20:50:06 +0800 Message-ID: X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 67BB51C0010 X-Stat-Signature: x1hp1o5xj5yxw61kcghyxyhm576raj85 X-HE-Tag: 1701867054-833614 X-HE-Meta: U2FsdGVkX19H9FhJJc2+1LEZhaZAEt42/R3MzWYsaU/qxtjLpaxSJ8qB+UnMJTFkw1BXxyxs3+0x4MMmwQzLajqaeBJAuti+lhbWQggshw4XNIBW7XAqdPhhL14Q3smnveqsB1ktm4L1bbvrfvxiewgCZOJmfvN1tqV54N07RR8SVnpyeTQRI/CojRabszCXYmuo7x1Jjpaqlfb3KYdQqF9bW7zK7/B1OLlyWOxir3t3aLdLPdKLPQK/sHbQLa83jQ0LSbZ1MxPwXfmEdcyRt3Z4p96lhig8/XElrKqxLMQ+lIeLB4583vyUW6vSQmWyIGN2wGUyH3LM+NjRfU0iUimH92dD+BZaFS1Rsi5zNLYAGzshYCUka9Uk9kXeWFVk6jYRCt9KG2+ItfmuFeGYKJvMIujlFI7hAYH39HG58Sw33LjDD6q+aFodKbmN0TTyVG9Oba6ELwRiAJTM6l5jK7m0+XjsupYcsPRYmkQhr025E9ThqKuNNbHKnIBFog4GavFsz3w5XvYkhTuOFQDjcwvDO9LPgoXffHYf64c+UhNzTOq7eRYENlL0OdFKUu5Zlwon1KxKdb56kwox4wD32o1ceaZPSVgzHG6Is7/9JvMaLK7Y5mCf2MW2m84DbB+v9eYf08Kq1MMU5y85eTj1wBkSySCPwclQYI74yw//SYNIWJuPyhwL0HK0hsIWoNzI6Sj5FZjxEOYvP/eLPkpYgAu7AO4xBn/bLOIguBlsXE3qyxqwpXtz3HCk+dpKG2nzhsamLmIiE6UoLq1DyXDaca4qcxsmWSehDYOUtSTh3YK7K5H4i5W9nlurjcR1s/uOXHcuZNskdjva4OGgOiX6gJ0ieleN60a7tpCHbQWh0h4YYB+HEsjf3EJz7zRU9i/3hixCDxBvSFiWDwJ92wHTNCvKzeyQ1GhkD6NIAclFOZ+Vk2lxVrktx8c7/58WYm1M1fvLuvfpjuHo3eej8Rw 4/0d0V80 3CKKivMw8+NKRqcPpYyyRBLe0Bj9/kq5Yt9KqeT0yoP8WItx31t+ahGCCzWes+xNIXYOK+HC5tFaC3TFmPhdfRyEKdN7Y9ffFb5qMhijPyUzXZSY= 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: When Multi-Gen LRU is enabled, we can't use /sys/kernel/mm/page_idle/bitmap to track memory which is actually been used. Multi-Gen LRU page-table walker clears pte young flag, but it doesn't clear page idle flag. When we use /sys/kernel/mm/page_idle/bitmap to check whether one page is accessed, it would tell us this page is idle, but actually this page has been accessed. For those unmapped filecache pages, page idle flag would not been cleared in folio_mark_accessed if Multi-Gen LRU is enabled. So we couln't use /sys/kernel/mm/page_idle/bitmap to check whether a filecache page is read or written. What's more, /sys/kernel/mm/page_idle/bitmap also clears pte young flag. If one page is accessed, it would set page young flag. Multi-Gen LRU page-table walker should check both page&pte young flags. Changes in V2: We move folio_clear_idle into get_pfn_folio to improve efficiency of read /sys/kernel/mm/page_idle/bitmap. Sometimes memcg of process may be changed, but memcg of page would not be changed. Page idle flag would not be cleared when multi-gen LRU scan this process's page-table. We think it's better to clear page idle flag as soon as possible when walking page-table. For those non-idle pages, it's not necessary to walk rmap and clear pte young(read /sys/kernel/mm/page_idle/bitmap) if multi-gen LRU page-table walker already scanned once before. Henry Huang (1): mm: Multi-Gen LRU: fix use mm/page_idle/bitmap mm/swap.c | 3 +++ mm/vmscan.c | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 12 deletions(-) -- 2.43.0