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 1E5F6C83F1A for ; Sun, 20 Jul 2025 17:17:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A8AD6B009F; Sun, 20 Jul 2025 13:17:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 932336B00A1; Sun, 20 Jul 2025 13:17:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 785536B00A2; Sun, 20 Jul 2025 13:17:11 -0400 (EDT) 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 580B66B009F for ; Sun, 20 Jul 2025 13:17:11 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2C9A2B9A6C for ; Sun, 20 Jul 2025 17:17:11 +0000 (UTC) X-FDA: 83685298662.03.7BBF642 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf21.hostedemail.com (Postfix) with ESMTP id 73DAF1C0003 for ; Sun, 20 Jul 2025 17:17:09 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JMXsHj0Y; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 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=1753031829; 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:in-reply-to:references:references:dkim-signature; bh=NLbx1bjXvhutz5KbelGRkCdg27vIO/XChCTGPtmo0aA=; b=PEeYN7Mii/7k2I870MYhdYzhG3oAbsEtPMCsvDINiNTq1qtZ5HJO0QsElUdpNjBFEa15Oe 3VQqx3VdbCMK9rOuc/Rv7HtdCWC5lkWsyx8pKrppibgfMX4aM2bf7p5YoCYPSEyroem75g aW8aaokp2gMsndtKDk2dZe8hDQqncdA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753031829; a=rsa-sha256; cv=none; b=Wv1wluOSIGd55Dg7pxouDLbVWv+X1lkqx0mUT/Z1t83Rgp02TiTqo006dYd8cwRs/3Qeni dWtVfNDlSJidI+RvTMEyhfs5b2Ba8HoMj95LJTl0Q/7tqS7gvfzX0POduViO1/UnMxA/xH YXktKXzQidNUo+cUvDp1C+++TAZP1hc= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JMXsHj0Y; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 8E5DA43629; Sun, 20 Jul 2025 17:17:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B301C4CEF6; Sun, 20 Jul 2025 17:17:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753031828; bh=Wceb9ArDixVkfJWULunRIrNmsNWtcFz3oVNo4mLAvbo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JMXsHj0YZz9us6RSod5WaJviNIlobPKj1lkhfkBHxblgcViTGP4mKwPfYok4YJRH1 yr8InuUOE2+bwBLQZCqD+Z0a3ZFu0Kgo/sQsx5Kkno92OMf2bmCSl8qkA2DFXiHc/z /96chNgKboautKIjJDGHr66W/6WTpbbjH5dihwfwGVNv+UaYJHF6oXwgDt9Im4I6RS qw1pAQqYVxDfoY1aLWI2UVpQuPBENBRp82xH1vTRLLli2Cju8u5svTmyk73mqJ2lMb JexlRm79DsDg8phBdspk0MU5dI3QO8iAYNvG0vU73LoYsPBYmZ6/f/9E/AHQdL/lP4 KM/Gv/w748UZQ== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 11/22] selftests/damon/drgn_dump_damon_status: dump DAMOS filters Date: Sun, 20 Jul 2025 10:16:41 -0700 Message-Id: <20250720171652.92309-12-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250720171652.92309-1-sj@kernel.org> References: <20250720171652.92309-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: g8j8qi9nd3cgmyeugx7qy4fkt7jaxky7 X-Rspamd-Queue-Id: 73DAF1C0003 X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1753031829-778993 X-HE-Meta: U2FsdGVkX1+HIDNTb7/EHEJU3nGG0pFbosxTvmCiu6dPW4b+IbKw5huUUJ95JLA8+FSWUXve5iONAcLAt8kUXY+D4Lpac2Il+6+r7wYx3/1311QOFMyhS/b41olZR9SQNe3UnUOw/+sBIWAzxfp09UJnCi1+TUVd7813fyEn5bQI2yGZjF1Tcrr5zdMgocZupgF5IN4qBmTokZ+/cP6Upo1Mb5JA5KVL/yaBUKpmHtzKPrgNnfJKSOV53xlxM3GJjUkuxvbM1qZicv5RB6iDy98gdiNMOlSaQYCTPa1VWUwGULAoNsUUSwt0ECAg3L0yMyrkuPZo3PwKvGWGCy8jv/ZT1rs1+pw1ooFWiqVtG33yH7SwWXZNxEIx8aQg5wGQYLUCUwG+nEQaQ6dY0dxUKKoexjdPC6HrSAV+Qo9JKlZAVaqBkehyJJB5VTuUKXFYafbLnYxMxedT1nVWKmvZLY2gv64ZxrXiidtXUlC03kXUYhdq7YJ7SODEVDPtjUh3LmDHf8Zz8c+4RmHpEDW1yvZxibld5dWNWKnMHZQf5Gqrv2vQT50TVH/N51hEhzuy5xNBPLxMfyMrwnpr2yrjQRfmMbu8B0fd1paKm9ZwbH4ZX1HXgzVtpHzl4jmDDRr+J+UWJeby091NfkDdQBxKjS5POaEYYgMp7+l1zj/P40IrHO7OmKfqv5FB/Wp9WOiur4oELA2E3LoLtqL3nah7UyT0pTLiOaZPZwHSB8pTbUESBxadomImxTWnuwHaPejsTWMohuzPJUyGRu3CRHV+ZhRU9hbJ+rpE8EIy2c4QV6j/leAXHtg21sJFkwkcysWwiucxJKtxpZtQEXBT8jsOPuPVIc9qC6G+XB2Q7INBKkLNY+pDxYGEiQkSRSncHnvTkdSWv8Onnx53ArG4IP81fLok/cheJoHcaTpdsBmtUmY4VH67BUEmxXA6DyHnV0SACuFCWPiujyjGT8cEf5l +EMiYpXd yPGZKJKr3Ek3Psj9A+Vh60HIL42cEU15L/fazbCO/20BL1xe7wh5GV0pWst27JT5RZF44MFe9yAhPkxB6PnnNJ/bJZyugpxzl6LDzICmvqMLh+cYmHHOao4UsV/bMJwePsBKMWFRteHdOaQLKe4WXdVzcOkk1Vvd7ZeaJLSf/EIDjuEDcis7IuMkvLPrwdsaTnqnsVOtwPlEc47gEZcEgB4tHPGNRX6shWfeLWvMM2X9I102//I0U4rhQhTVZGs5NjOvn25rIl7zNP8KH+E/v2fQyWuagPsbIb7E4 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: drgn_dump_damon_status.py is a script for dumping DAMON internal status in json format. It is being used for seeing if DAMON parameters that are set using _damon_sysfs.py are actually passed to DAMON in the kernel space. It is, however, not dumping full DAMON internal status, and it makes increasing test coverage difficult. Add damos filters dumping for more tests. Signed-off-by: SeongJae Park --- .../selftests/damon/drgn_dump_damon_status.py | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/damon/drgn_dump_damon_status.py b/tools/testing/selftests/damon/drgn_dump_damon_status.py index cf5d492670d8..7233369a3a44 100755 --- a/tools/testing/selftests/damon/drgn_dump_damon_status.py +++ b/tools/testing/selftests/damon/drgn_dump_damon_status.py @@ -135,8 +135,37 @@ def damos_migrate_dests_to_dict(dests): 'nr_dests': nr_dests, } +def damos_filter_to_dict(damos_filter): + filter_type_keyword = { + 0: 'anon', + 1: 'active', + 2: 'memcg', + 3: 'young', + 4: 'hugepage_size', + 5: 'unmapped', + 6: 'addr', + 7: 'target' + } + dict_ = { + 'type': filter_type_keyword[int(damos_filter.type)], + 'matching': bool(damos_filter.matching), + 'allow': bool(damos_filter.allow), + } + type_ = dict_['type'] + if type_ == 'memcg': + dict_['memcg_id'] = int(damos_filter.memcg_id) + elif type_ == 'addr': + dict_['addr_range'] = [int(damos_filter.addr_range.start), + int(damos_filter.addr_range.end)] + elif type_ == 'target': + dict_['target_idx'] = int(damos_filter.target_idx) + elif type_ == 'hugeapge_size': + dict_['sz_range'] = [int(damos_filter.sz_range.min), + int(damos_filter.sz_range.max)] + return dict_ + def scheme_to_dict(scheme): - return to_dict(scheme, [ + dict_ = to_dict(scheme, [ ['pattern', damos_access_pattern_to_dict], ['action', int], ['apply_interval_us', int], @@ -145,6 +174,18 @@ def scheme_to_dict(scheme): ['target_nid', int], ['migrate_dests', damos_migrate_dests_to_dict], ]) + filters = [] + for f in list_for_each_entry( + 'struct damos_filter', scheme.filters.address_of_(), 'list'): + filters.append(damos_filter_to_dict(f)) + dict_['filters'] = filters + ops_filters = [] + for f in list_for_each_entry( + 'struct damos_filter', scheme.ops_filters.address_of_(), 'list'): + ops_filters.append(damos_filter_to_dict(f)) + dict_['ops_filters'] = ops_filters + + return dict_ def schemes_to_list(schemes): return [scheme_to_dict(s) -- 2.39.5