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 4ED4DC7EE39 for ; Sat, 28 Jun 2025 16:04:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B525E8D0002; Sat, 28 Jun 2025 12:04:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ADC1F8D0001; Sat, 28 Jun 2025 12:04:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9CA5E8D0002; Sat, 28 Jun 2025 12:04:35 -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 850DB8D0001 for ; Sat, 28 Jun 2025 12:04:35 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 350C11D7369 for ; Sat, 28 Jun 2025 16:04:35 +0000 (UTC) X-FDA: 83605282110.23.C03D7D8 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf15.hostedemail.com (Postfix) with ESMTP id 7EBFEA0002 for ; Sat, 28 Jun 2025 16:04:33 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XThsJ7hA; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751126673; 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=R8zqt7epzNdiQUWoCnYJqkjMxi32+zNHW2DqFQR+xkY=; b=ndWrlP0CP/XgwrcAuMS/YURamwKGfjTjWfZoqik1mnauZyy9cl91kG9L5dmuV0FCcxIKZc bQV47GwBWqMZglEuZ6kp9iUFCaj20FhqM6fRfTVpW+NIDPj8UeG/V7k4pt7Gi8DEOi96eG N6yGP4qOgArssjADmh2Xei9VhSFzPpY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751126673; a=rsa-sha256; cv=none; b=ZKIFzasfx73T4f7uV9e+LWm2aq1R+brkXZuXlEH7JoC9zjOSMfHPpx+G5QEIlb7pOW5F4L MOYDgta3Rq7E4helMeN7stYDUY3UkjaYl1p7fAkiy9DE7oMjQsvvYZDaDbMZ3H78REDSHe uVAZVvGhvQadpOVfMn5yyyCcGGxpSKY= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XThsJ7hA; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 6C4E65C4D17; Sat, 28 Jun 2025 16:04:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE853C4CEEA; Sat, 28 Jun 2025 16:04:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751126672; bh=ZcBXrTQE/EcC9dDxaVoPJkijonw43CRMpiHHbkq1lhE=; h=From:To:Cc:Subject:Date:From; b=XThsJ7hAgV6a8xSt6c55FYLJn0tcO+6YwzPCau0ZeM05nHNa/XXRbQEnVE7//i18N gXp8xh1FMfVPjYIzjcRc3eOeLoKB1mMHTT6XVbQnRdeKKsLyHVtgJY/OVWA6RupmEh 1dmRFYY71+URBRbg5Ocw3EQxypv+MUBPLQpO5/p4YEQzJMWyJGnP1216CrC0N/hfJo UCk+Avr2zCOzZUNDBjz+DIfaNMUGHTkTiuW8jtOrZTZrWkTmfF1i01azhdaU+xujIT oUp0lH0nW8/4nnpfd2BYi6rH6BDSseGIN7nPwnVuhS4WwPxeKTsjckNNbBhwiHAlES 2R7AU9ISqp++A== 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 0/6] selftests/damon: add python and drgn based DAMON sysfs functionality tests Date: Sat, 28 Jun 2025 09:04:22 -0700 Message-Id: <20250628160428.53115-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 7EBFEA0002 X-Stat-Signature: m9dnnqfabmigry4g4scz87s3n9xqkp1d X-Rspam-User: X-HE-Tag: 1751126673-414768 X-HE-Meta: U2FsdGVkX1/Yrh9kiijAisOfarW8WO8Jz7LPt29A/RO3mxjTN6HPNKFOie99pqH2C9rn64ayE/CepnZc36Pus/YPfw3FoDQIbRVkO/f/JCSiCjU9Fm8olkLgvEScqTL6GjIo4iJpTrPaNnjEbalqMQHAuUmGIAxp1cv4vkHG5NyxiUiCEv8QqbdP/ubCvcONB7131cqAIQa/uPZBuFpnPYMdrRAdZl2mbDqmA6yFoSCuh1+w9VS1eWWOV7GQmmjt9/3CHDuLoTYgw2y7aUoNepChFdopCcZ/DrSblOXGRSAqhhzB0+nODftkLUpIQs2wsDj8ximN8lS+h5Q6D27ZMfKLByNRHw0f/f+CJu00TV+6dAYJUnX8i2UjZJBdoywwO12IlgRWA5qaJ/ohDgjci3SedOYQMi21Vb3Tzv0ebh8fATygfDv78IBVFJaM8qzwg4tHGtxbnSEYh4BLlmf+FQNY6mjC/rh9hHp9KOL1vGfdylrdvNcZvXevFB72U8rvPsNIghdk/GoPWdbYUhlSJa7+tsOwW72KDK2kL9o4yV0RkHSkbAXXkNFt7yrlXz0L4p25Fa2b3KrX84iiaijPG7AbZEvA1SFTkZ1B1GYC2HtVcu+a72Lg93z8xpl3NdyXXeMXD8u1WTTneavkMRdA29HXK2RDO4P9v6OWAuZjAkSMjPkm4Y1xyzpU4LoChxNLhZb6lEoXJOxIrQB+LbHgJQFKiIp4zbeH9QOoHAuFBQflHWByLdoJffseoaHxcy7/Q1DM5kij/fmdlhTZGxGM1P4wHZ7AmXJ3FCUvYGza56QbSfB4EfF1gQE+jZ1F7lt0y53SYXvLnKW0O7fK8QI484HRJ5XDxMBXb1yyhdnzRuqUtDHsz9IENchJgl1l8sFxhteoppHrCD70ORNv2vT/G91RJ8B8b1Ss42LlyyRvqt7P++B/EHhLhqYrCk0SW+w6OmE5AawEsbyZXCIZSgC 69EcNpmC EyPVjoYVoNKJxqQF0nCyL2BiEscG/4OIid+vDF+uWGewLB4GkuQtka0wGzqZx5pY+o62eLav+ggptmulYCRYAmVbxjUzEoEFhfKFUuKvefm+KR6qDfcPFATx8R7+7DWS8MHDuF2lV4ce0HH0XzLUX1edC0yd1Rr0zZum6pVGNu1uZ3JSElE/qbUqW5smhFpRqrRsPCkbGoiBXIZVD/XxrVUQYIw5RrVFfba+KMxQo8L9gvFY= 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: DAMON sysfs interface is the bridge between the user space and the kernel space for DAMON parameters. There is no good and simple test to see if the parameters are set as expected. Existing DAMON selftests therefore test end-to-end features. For example, damos_quota_goal.py runs a DAMOS scheme with quota goal set against a test program running an artificial access pattern, and see if the result is as expected. Such tests cover only a few part of DAMON. Adding more tests is also complicated. Finally, the reliability of the test itself on different systems is bad. 'drgn' is a tool that can extract kernel internal data structures like DAMON parameters. Add a test that passes specific DAMON parameters via DAMON sysfs reusing _damon_sysfs.py, extract resulting DAMON parameters via 'drgn', and compare those. Note that this test is not adding exhaustive tests of all DAMON parameters and input combinations but very basic things. Advancing the test infrastructure and adding more tests are future works. Changes from RFC (https://lore.kernel.org/20250622210330.40490-1-sj@kernel.org) - Rebase on latest mm-new SeongJae Park (6): selftests/damon: add drgn script for extracting damon status selftests/damon/_damon_sysfs: set Kdamond.pid in start() selftests/damon: add python and drgn-based DAMON sysfs test selftests/damon/sysfs.py: test monitoring attribute parameters selftests/damon/sysfs.py: test adaptive targets parameter selftests/damon/sysfs.py: test DAMOS schemes parameters setup tools/testing/selftests/damon/Makefile | 1 + tools/testing/selftests/damon/_damon_sysfs.py | 3 + .../selftests/damon/drgn_dump_damon_status.py | 161 ++++++++++++++++++ tools/testing/selftests/damon/sysfs.py | 115 +++++++++++++ 4 files changed, 280 insertions(+) create mode 100755 tools/testing/selftests/damon/drgn_dump_damon_status.py create mode 100755 tools/testing/selftests/damon/sysfs.py base-commit: 5ab6feac2d83ebbf0d0d2eedf0505878ba677dcb -- 2.39.5