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 599A5C83F22 for ; Sun, 20 Jul 2025 17:17:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 53CCF6B0092; Sun, 20 Jul 2025 13:17:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 49EEA6B0093; Sun, 20 Jul 2025 13:17:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3179B6B0095; Sun, 20 Jul 2025 13:17:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1FEF06B0092 for ; Sun, 20 Jul 2025 13:17:03 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BD08680568 for ; Sun, 20 Jul 2025 17:17:02 +0000 (UTC) X-FDA: 83685298284.12.38B4E9F Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf06.hostedemail.com (Postfix) with ESMTP id 06320180005 for ; Sun, 20 Jul 2025 17:17:00 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ulFZUcOD; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753031821; a=rsa-sha256; cv=none; b=OXi2Z5F1TO1dfNMBG4lRh9qhHYYkfsWjCKUWWq9unAKL5PCBFo87hX945QcyY55c+UR1uz U6hd0Zl8b6Du9YOHP6q1wxP1c0myjrqJMKHjnNfNm3XaapFXhZugu9iswatiBrj4IFbNuW BbLiJ/VR3M9YzhPL59ivPfr+0ifhPG4= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ulFZUcOD; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 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=1753031821; 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=1f4UH4/4h/OCfONKUa20P4pOpeJ8pruMJNl+PWwfafc=; b=3WXCLjQfXL5/M5913gMZviYIvd8Ny5Ai65lrBjAMAz/nUPV3ecNzLHiDfgiM+HjJGi0Hgm ug8tyQL8DJSzMgK3JTomR5jDWoLT6lH5SDZ8FGYy/bjAMai9/ydTzVotCX3yUcTk7SczG+ I164opwpPJlbZdlzQn73zZ86B7IATQw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 0874B45CCA; Sun, 20 Jul 2025 17:17:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA392C4CEEB; Sun, 20 Jul 2025 17:16:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753031819; bh=BVyAzLCX6KSwysObZ8ul7hmIo/e9lFQwzRApis7bbiI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ulFZUcODLpOMEYtvJpC61dzm4lP1iy1rSRQhLhR0nEwW63Pvw5d3uofFF+LMgYtCS zFrxo2XGaM9YHjZEnffrS6jGX4DAXMLW7F1soW1I3lqNqzX91N3Qz4xuyTY4UfTk5+ RzfXFLHZxDzpCW1GAgRoL35C2b5rCbMfUTc/RB1oe64DwakaIJKj0yVYb3zM76Fp5+ b4cM1cz585DVySH/gGJsFIqlcLKsZx7C3erhl8dlUUC0eXnIE1equ4t7bxnRWy7JvH P9nMtXUFYmHlj/m5JGmZR2+Qr8Wwyz7WqU9zqRT7NJ7of8QiBfhJg9xigc7KqZ+E/y GJS1lI8pFRgvQ== 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 03/22] selftests/damon/_damon_sysfs: support monitoring intervals goal setup Date: Sun, 20 Jul 2025 10:16:33 -0700 Message-Id: <20250720171652.92309-4-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-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 06320180005 X-Stat-Signature: j83fru9uwpfmjhwcahwspqz3fh5f48j8 X-HE-Tag: 1753031820-639439 X-HE-Meta: U2FsdGVkX18gbJkv/hQrJzvVnbUbWhVMGXO8AQYkbhT6zj5OmdDdAcXOBW4ScnHsRRcR1hsmj3/ZEbSJXsVLpvjaHgLgOisvr/kimDDIW3Gv7OEkylrnTVSqouPlAgQ23huIIpPm5S5VP0HLJ8plME3GU0GYlEZdMLYE2lV7jsZ5UM0/IEKjb9IbVmT+YuGTK62s7o3bMPPPY20tHu10jYIUABacDFIIF8H1Hbw2ysqM0iFZeh7k1LT6CS0HhWLDie10vafoBwakCsfnHImkVGDgXM0ietCk7yQqDpnN3mPcCpOTR79BZEVMogDF0po3RohP466u7cW59CWaN8g9N2/S8FWinzAZp0uTKxNJrNiH2kDFUXMoqnNsCdw3kLlXxXtAL9lOwPjQ8FGcZ7y96XaO8wRq7kFaVkwUovlvDbQu4ohKsYU9br1JgZQvSl2Oy9mNPC8i5H5NAd7EM8jufXpyzjssfWGOdZZ1hioaiPTRrFDcSUyGQWEi9kyqBK5rIwDsDV8OXbbdKexky8TkRktzc+kvNfvMP/cy3boIMysTb/yyc4DFtCKhs89xX3fieP+vO9XKFUJik2YJ3AcZ5sTH55siFL9a+DeF6G/0ub5TO2xP7eNCwBQhYpq8dC9/fmZ6MOkkT8WnpgUs6Uio9rBQGr19VX9TFmAkQmWCoaFZ+tQIbLEH+YMbFKX/elVBm2VIkCVforBz0yp4t6A1yqxZ2+Iwenb8nyADYqjtD5Cl1P94/v1NRD5znG/utDw3wTqIqEZG47yGV+GjakvzXsXc8W0Gp/q+g0KICvXWM75NWlcW7+DDNvd8rPA+MVSMVftYZvHx3L/N+ckGqzi9QZkeDarXzMZTYeGbmog8mYTx3snVVIjr9ahOYYRpknLz+uI0tcvvYmQkfPoUiGoBsSL5nV5Ay7NqMAKNeTdZaXsEWg/9mjspSlKBZ4zgk8Pzja8rBESmZIElQt98AkS 3Dlu7E5b Yh6Ku0QLKMgDZ2IEiq8sHzh1eFHgZpj+SvVETSNnbaGY+MMMUoyRz8o5651H2lfBnk/vdnOvGwDos7hj+lMn7PBCzl7hdGxLumnqLBG/li/JEci21JneDz2ni4KTlTKoABA3cOv1zZMHZumb8TgLuW06WbOoH0NzODbFOAaE3Grmztn2RwvppXZwlpWPMowv5PJwx3tmJiOeu3yiwnqPY8zW1m0KqHx5X2Ifgo/1ouk3XJTHYoWxxcLY0SunxrCjvZBTJhhgZg0q74HYlYjNXPWqwwg== 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.py contains code for test-purpose DAMON sysfs interface control. Add support of the monitoring intervals auto-tune goal setup for more tests. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/_damon_sysfs.py | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/damon/_damon_sysfs.py b/tools/testing/selftests/damon/_damon_sysfs.py index f853af6ad926..ec6230929d36 100644 --- a/tools/testing/selftests/damon/_damon_sysfs.py +++ b/tools/testing/selftests/damon/_damon_sysfs.py @@ -405,18 +405,56 @@ class DamonTarget: return write_file( os.path.join(self.sysfs_dir(), 'pid_target'), self.pid) +class IntervalsGoal: + access_bp = None + aggrs = None + min_sample_us = None + max_sample_us = None + attrs = None # owner DamonAttrs + + def __init__(self, access_bp=0, aggrs=0, min_sample_us=0, max_sample_us=0): + self.access_bp = access_bp + self.aggrs = aggrs + self.min_sample_us = min_sample_us + self.max_sample_us = max_sample_us + + def sysfs_dir(self): + return os.path.join(self.attrs.interval_sysfs_dir(), 'intervals_goal') + + def stage(self): + err = write_file( + os.path.join(self.sysfs_dir(), 'access_bp'), self.access_bp) + if err is not None: + return err + err = write_file(os.path.join(self.sysfs_dir(), 'aggrs'), self.aggrs) + if err is not None: + return err + err = write_file(os.path.join(self.sysfs_dir(), 'min_sample_us'), + self.min_sample_us) + if err is not None: + return err + err = write_file(os.path.join(self.sysfs_dir(), 'max_sample_us'), + self.max_sample_us) + if err is not None: + return err + return None + class DamonAttrs: sample_us = None aggr_us = None + intervals_goal = None update_us = None min_nr_regions = None max_nr_regions = None context = None - def __init__(self, sample_us=5000, aggr_us=100000, update_us=1000000, + def __init__(self, sample_us=5000, aggr_us=100000, + intervals_goal=IntervalsGoal(), update_us=1000000, min_nr_regions=10, max_nr_regions=1000): self.sample_us = sample_us self.aggr_us = aggr_us + self.intervals_goal = intervals_goal + self.intervals_goal.attrs = self self.update_us = update_us self.min_nr_regions = min_nr_regions self.max_nr_regions = max_nr_regions @@ -436,6 +474,9 @@ class DamonAttrs: return err err = write_file(os.path.join(self.interval_sysfs_dir(), 'aggr_us'), self.aggr_us) + if err is not None: + return err + err = self.intervals_goal.stage() if err is not None: return err err = write_file(os.path.join(self.interval_sysfs_dir(), 'update_us'), -- 2.39.5