From patchwork Mon Mar 11 20:45:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13589317 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 B7E9EC54E5D for ; Mon, 11 Mar 2024 20:46:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C4476B0126; Mon, 11 Mar 2024 16:46:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 771E76B0127; Mon, 11 Mar 2024 16:46:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 615856B0128; Mon, 11 Mar 2024 16:46:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 3FCCD6B0127 for ; Mon, 11 Mar 2024 16:46:06 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EC9068097F for ; Mon, 11 Mar 2024 20:46:05 +0000 (UTC) X-FDA: 81885940290.04.248FB11 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf11.hostedemail.com (Postfix) with ESMTP id 2819440022 for ; Mon, 11 Mar 2024 20:46:03 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=A6fUVGPl; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710189964; a=rsa-sha256; cv=none; b=6gpHYlYWioZUs0MxYOpG5EMOeQfjcnefrvqHhgTdbRI11BdsGoDKhVdm+c+hz2Hv9QmGLq MZ0zhd+L22SRzefHJrEZlEo0PP9IWkBTNXn/ijXMqJtnw1JS2eO+3T/D4rzxwdl90nHT0D 7rX862cMpBoAG5kdQaPYI8lWoJQU++4= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=A6fUVGPl; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710189964; 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=Ohd60EqD/oDmNSHwQM+kf0gsDt/rdLF8ZhvRq5kGdfA=; b=pBR270wOq/IxSgVZ1fswIw6ek4e2veR7/RfoPGwriTkI45r74AFgLyKQGKSnDInGjrOJzc xL4UYCZknA1UCm9kOcAEAXvxHIqaCs4rzYkrvGsGKwzN6mW/liXL2udhMG1XuhoLz1dAs6 lAcKSgErELueQUiuy32XrPKRqpeQNZI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id F3F60CE1284; Mon, 11 Mar 2024 20:45:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A78E1C43390; Mon, 11 Mar 2024 20:45:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710189957; bh=s5xI8mQzAoMjxpwEaBaKlaL9MAdSZsz/UtdcP8IG03A=; h=From:To:Cc:Subject:Date:From; b=A6fUVGPlk5NuPRlI/mnP1O/IxeWLCbg00NHinziLuI6WiVNTXi/0/KI2drBkdkUSv 9RfJ1iM7LmzejKD1R5IGpER9kAzambV0NRrW1TElkuDE1uT40NuKg69gC2IYzE+BX0 ivzDHEL7sMthf+yv4+MZXmOvVSTytptVmO+GZ4fc622uSwwFyZ7HgTA1YC0fmTJyJv MZQoP4byqHrGOMEpMOH2vP57quYbdZPjcWO2cEeaoQ6N181rs64ojbqVP4QNpHw6Cn vYDGRXvFYL6ibPnaFqbU9q36RnANPS1XGkC6EqfjEoyhTZUxmRKB3iMnKqyvTaaZYO GJfROvh/RhfSA== From: SeongJae Park To: Cc: honggyu.kim@sk.com, hyeongtak.ji@sk.com, kernel_team@skhynix.com, SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v2 0/4] mm/damon: add a DAMOS filter type for page granularity access recheck Date: Mon, 11 Mar 2024 13:45:41 -0700 Message-Id: <20240311204545.47097-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2819440022 X-Stat-Signature: p6smoucynrzndjtin8rq4tfmh9gk7snd X-HE-Tag: 1710189963-986588 X-HE-Meta: U2FsdGVkX1/hWwy+9FtIVbN0YczJNlLzOi3KWJWGT/hSkheAGa5t19wVjn2JqewCLV4kG/PEt4nH/D+BAaDl5biXpbbu2Ai+u/kBMVJdfShbpFuKXTuriQDytCmCnL1ZZ5caSECKTV7BD9AcueIFzGhhIqbctv4ohrvLRioeINGknJw99t0wBwqevmoCvDoMGeEv5mNuPIOWLqIoEh2Yse5e1kamimYZE+F9wMw4Uv9MIbPAZgzDEYcofsp4YphqdwalvulHLH9JRriEZ11i0vFlF++1liOu7DXaxjSe7tLzakUuFSw6+4jBYJloY9jYCjwyT8zwbPXwUODFRpBQvFpkfDFt/nJzSU5wdLnMctri244XC6SZRdCFIPEtVghH17Qu+eubjLM95f5XKOj5KvJZxByZBSq+hbUNUAxuNr1o8fkeHDQ7n2nv/Gm/o5VoTs9wBNm3OIz0K7athJUe5m3DQhzRAdH4Jiz84zgWOxdpSrYYhiLnuAvjGlec1ugokKPq3ZQI5GHblaX/Ec8UGODNgNWdzN379WFMm3AT6LUKKeSxCo0nbUvI0jX3QOEoTA7UwUpMYTBvdgwSTTJcHgxg2cJBOAwY0GjoN6RHqF6O9Almdq06KhJApPcegbxsFKHUiLvfObRpsT5Y9pzvrVrLHtC42C/igbj4V34Ff1igVroL3YU20DoYYGum2y35OmNxlB0in83qu9kW7ra1MO1Rcbc3jAquhP/Q1ceKQ3qJ2S9jf2MJkymbOHvkzDbYRHdf73zdYyCC8nPBokeGgnJTklPIza6nR8DXD51L/jDETOW78MM37PcLdxTJ8jE38oZc/VPqA68jWvB20UfJZvphaJFnHY46nQx0bd75mes7XCg2F8olHcx/tIs4d+6mJ0JPt570WnFvieguwOnh8/Pg2eVLDsJz63jLAVa/no0= 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: Changes from RFC v1 (https://lore.kernel.org/r/20240307030013.47041-1-sj@kernel.org) - Rename __damon_pa_young() to damon_folio_young_one() - Mark the folio as old from the filter for the next check DAMON allows users to specify desired ranges of overhead and accuracy of the monitoring, and do its best effort to make most lightweight and accurate results. A recent discussion for tiered memory management support from DAMON[1] revealed that the best effort accuracy may not suffice in some use cases, while increasing the minimum accuracy can incur too high overhead. The discussion further concluded finding memory regions of specific access pattern via DAMON first, and then double checking the access of the region again in finer granularity could help increasing the accuracy while keeping the low overhead. Add a new type of DAMOS filter, namely YOUNG for such a case. Like anon and memcg, the type of filter is applied to each page of the memory region of DAMOS target memory region, and check if the page is accessed since the last check. Because this is a filter type that applied in page granularity, the support depends on DAMON operations set. Because there are expected usages of this filter for physical address space based DAMOS usage[1], implement the support for only DAMON operations set for the physical address space, paddr. [1] https://lore.kernel.org/r/20240227235121.153277-1-sj@kernel.org SeongJae Park (4): mm/damon/paddr: implement damon_folio_young() mm/damon/paddr: implement damon_folio_mkold() mm/damon: add DAMOS filter type YOUNG mm/damon/paddr: support DAMOS filter type YOUNG include/linux/damon.h | 2 ++ mm/damon/paddr.c | 64 +++++++++++++++++++++++++--------------- mm/damon/sysfs-schemes.c | 1 + 3 files changed, 43 insertions(+), 24 deletions(-) base-commit: 13043cde46a19e72d37965b67b74e564623f65e7 Tested-by: Honggyu Kim