From nobody Sun Oct 5 10:51:33 2025 Received: from mail-yw1-f171.google.com (mail-yw1-f171.google.com [209.85.128.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1811C291C3E; Tue, 5 Aug 2025 16:20:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410854; cv=none; b=nvthyck1NftdL73PJsEGKEPnQ/pDf6ld2wrflPufBonNBGixwa8pnZwHTPgIQvTDuRdw7gXW1MnkpPH/hC5bKUGDALmej1hSkcfeXe40blnu9FOMDwMhPTU2ojnuFhNBfvUY6OMNQZngPqlCcbbNV6OK+mxcYMl3Si3qvRBflvI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410854; c=relaxed/simple; bh=tF65PXhkOzWY/Nr9yG/G9amh/Bayj25Uf9hB29HafnU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rwb4hK3FswNbSP6DrqVlOF64Es8YY365pRm53VOhjHzpHbkpJ4X/Sk6iERUA5W3ZK9QvXGNSxQOp6dlRa6H+8+4p0iOhlloeQs4TVqUADCXj9aGVNintMtNJkbvB9bN44wMjJAxAcw0cj7ImPk2cRmGNXW/tNCSxhqt1HheIyrc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UH76YZPF; arc=none smtp.client-ip=209.85.128.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UH76YZPF" Received: by mail-yw1-f171.google.com with SMTP id 00721157ae682-71a39f93879so678307b3.0; Tue, 05 Aug 2025 09:20:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754410852; x=1755015652; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pDs8MlFPdGXXGi6TlMzCzWKbAeHvaPRj6HPGrEA8aHE=; b=UH76YZPFTodTMz2S1dZSgyRu7Ofk0NCtHo6jiMWezVzukGumiU4ztfb3rC6OYzemlh PHudyD78ExAtLlOYNh7N32yI7mMFclCJMfA63k5p+v+lmpO11eUBZnWKSoEMtAwnQMj9 erxZzIHdzfKjF5a32AYAl0L3cH1v9L3Uc++TckQLokNaAad2eAoDJmOnWM2pehW4hQCy Q+dXD+XUIcCjaRdRDrFsymq6wszRPmgS6ve/bbZSVqhfbRvVIyNoaFAntZ1TGv6duMiJ LyRP2H3owWbRebVIwMQik5i7RJni/1BvNr1eNn/cqLvzHyjKFRvzG98H89r52j6b4gp8 TwLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754410852; x=1755015652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pDs8MlFPdGXXGi6TlMzCzWKbAeHvaPRj6HPGrEA8aHE=; b=pUHsKGg+xIj4gYjutihbWl7ufmuw++kiNAjgkeC/vkXIocHhe1P9dqLXXINNljblkS LuosPUF9sfrk8pBb0EnbYZLvH/98C4V6mOaKSwXlz/kJnjCZZXTbtag6BIAj7bN/Pq3+ Y6FPr9NVnNQcEL/BA89H2nHx4Pp2i9cYtGRGu1w7dJ6tqY4WXWvzvkwSpyxSG/5lttdf MzfkHfnZXx9DfHVZYN9n3dPETd/3dEqAxlKgUlSw4VUtMZe3qi0Rh36R4POeyVQNS7j2 UDUxZ/ejzPigWWpYJRtFKxcf00sNfdXUl9gb8iPhwZXrWePElOoYp4wtCa8orvHKT5Hm izng== X-Forwarded-Encrypted: i=1; AJvYcCUWG+eOW/URyC5BQQx0qFxt6uGSYPYDdOOQ7L3sAm8tXiSs+ojZ3eycJ4HaN1gwWCXBDA3HUyTXDiV6m2oT@vger.kernel.org, AJvYcCV1kKzgeLZdBuvUePDczSKFiV717c+MoIo4hfK2QbVAM+ZNLUtnw+GGoEGtpadXW6EjWjOS8mGuGBY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz9LbMsQD5182LvYlIpbbhEry0PqKP0gKsJ1mr/60wKuQEP8ZBG Q2mfQNZNbmljRwmgFfaKxxzTDElsApq4sr9suZClLfpBTAAvlBZl7Z29 X-Gm-Gg: ASbGncvbozcSIbxnDTfUqv5Tg/Trpd/hHSW7jOPDnlcz2qg7Nq5U1y5zx1AaodvZpyz 6I+yZ5ygZvtHLmKGTx6bEgPwbBYs7dNUW3gq2ZO6uu7M+d7bmHEnrcnChRKHCB0oFwSIf4Jzl/H Ed61LcgRDP8dxIkMM1BUaHxtkqEGI3OE5Xh6HuDvVY6HPXWcO/uhcxwcKOUE4N6plKAR033iXVA TIlzQMQ5uVU4dwN+pIJHIY+byTZZRpNsQxkesDEOJMkBIiL0EK/Rd5bIJPlI7AR/O28p+p7imsq +0Q8WoDgAeQfoovS95hKJpPi9YW6pM2Qo5ZtAEGRw7W40qQbEWwZL8AwmzHNQw4ynABL3cbkxro KXQcoGwzlNUhI5G0iUyzTeUs9CMcQL5d7rTmmbg6y396pQeF8opSS3Q== X-Google-Smtp-Source: AGHT+IFnyMpRgYiV7oRfT3D4U/J6G+wtU+eDsuK0pB5vtb532dpTisNQyFGaJtTj/nzk7d4QMO8Fuw== X-Received: by 2002:a05:690c:6f04:b0:70c:ceba:16 with SMTP id 00721157ae682-71bc7edb174mr5896047b3.17.1754410851928; Tue, 05 Aug 2025 09:20:51 -0700 (PDT) Received: from bijan-laptop.attlocal.net ([2600:1700:680e:c000:2c65:e45a:e7d5:5f0e]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a5cdfc5sm33098757b3.77.2025.08.05.09.20.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Aug 2025 09:20:51 -0700 (PDT) From: Bijan Tabatabai To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: sj@kernel.org, Andrew Morton , corbet@lwn.net, Bijan Tabatabai Subject: [PATCH 1/5] mm/damon/core: Add damos_destroy_dests() Date: Tue, 5 Aug 2025 11:20:18 -0500 Message-ID: <20250805162022.4920-2-bijan311@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250805162022.4920-1-bijan311@gmail.com> References: <20250805162022.4920-1-bijan311@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bijan Tabatabai This patch adds damos_destroy_dests(), which is used to free a struct damos_migrate_dests. Currently, the contents of a struct damos_migrate_dests in freed inline in damon_destroy_scheme(). Moving the code to a separate function is useful for when damos_migrate_dest structs need to also be freed elsewhere. Signed-off-by: Bijan Tabatabai --- include/linux/damon.h | 2 ++ mm/damon/core.c | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 6b797120d2f2..a851c8bc2e52 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -914,6 +914,8 @@ struct damos_quota_goal *damos_new_quota_goal( void damos_add_quota_goal(struct damos_quota *q, struct damos_quota_goal *= g); void damos_destroy_quota_goal(struct damos_quota_goal *goal); =20 +void damos_destroy_dests(struct damos_migrate_dests *dests); + struct damos *damon_new_scheme(struct damos_access_pattern *pattern, enum damos_action action, unsigned long apply_interval_us, diff --git a/mm/damon/core.c b/mm/damon/core.c index 6a2fe1f2c952..07b4fc5a9790 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -359,6 +359,12 @@ void damos_destroy_quota_goal(struct damos_quota_goal = *g) damos_free_quota_goal(g); } =20 +void damos_destroy_dests(struct damos_migrate_dests *dests) +{ + kfree(dests->node_id_arr); + kfree(dests->weight_arr); +} + /* initialize fields of @quota that normally API users wouldn't set */ static struct damos_quota *damos_quota_init(struct damos_quota *quota) { @@ -451,8 +457,7 @@ void damon_destroy_scheme(struct damos *s) damos_for_each_filter_safe(f, next, s) damos_destroy_filter(f); =20 - kfree(s->migrate_dests.node_id_arr); - kfree(s->migrate_dests.weight_arr); + damos_destroy_dests(&s->migrate_dests); damon_del_scheme(s); damon_free_scheme(s); } --=20 2.43.5 From nobody Sun Oct 5 10:51:33 2025 Received: from mail-yw1-f178.google.com (mail-yw1-f178.google.com [209.85.128.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3594028BABE; Tue, 5 Aug 2025 16:20:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410858; cv=none; b=kUtMTw8vVh7Z1w+lqElKnHlnrBN3aM/rdaCrf1XHsaIY1A1Jaod7KC6Hx9widNllRaPcIS+1aV1vaQCGYU/c1nTT1vb5jVL+Oa86ag8mPjTfG0hrMusZzd2OhGgLPqLaoLLuj8WkFLFv7dFfZZ96G4qQRQ4ZVditrnQv0kqXRgE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410858; c=relaxed/simple; bh=a2md+4vsTqK11YqhnkKXK2lQnHwV8IUnDfnplUt2rhs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oKQ/BAyiCFGjUhKAomeoI9zXJfve1Dd3JIPak6yT1hyrokR96KocvTsYm5ln8q85fjZO+9YZ6eHb3rW2CUT2Csn7iKof3dpRYxyUhjCMPn+hbUok41GBuwfdYHoWPcRdAKgrNsZBQUUTc6VCLOi+/R0fpkq8xUTu+sx4+SxX0Qg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hGR2Cfui; arc=none smtp.client-ip=209.85.128.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hGR2Cfui" Received: by mail-yw1-f178.google.com with SMTP id 00721157ae682-71b49a8adb2so52757267b3.1; Tue, 05 Aug 2025 09:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754410856; x=1755015656; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bx5UQH2AP53zKZgFMv/Gb2uS3eFAcrg1hCo7F6RktNc=; b=hGR2CfuirZ7F3HMuP+BVeDO2/ytrNK1LrmDgpNY6iVeGbJUwmIuah73g/EZogqPljZ USCd1gEZ/tlQiqbVKH5+6GBxdU1Y0O7p15NZxij5mzsb+g765UYCM5chVdwnOwLOVwGj hYLoCzHQ8w4EBuVBVOa8+pJwIZ4PmZIOJZl2JvSqDZGhA2Xg85pSeJ1Y4IGTQe4XdjVR dgfr7e63CVlKHeonUx3VqtvEwWnN68twB/gWLlNQdmz4tx3FuTVdbl8B0VUzwyqQOFiK 9qmd310V6j1wgbZ3BWozV38GpIHGBEvznjJV4kB/q3eG2NIlBdxKkIHt8uF32x+BFRwW yTSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754410856; x=1755015656; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bx5UQH2AP53zKZgFMv/Gb2uS3eFAcrg1hCo7F6RktNc=; b=XeN+FNF+GOdk0Icsh2N66Exm0GCSxlbBG5xQg8eLMHK+ra6IAbVTEKfeMgwiC8ge9e AEiFVCDNV0jkvT1+wQ7sN30iEPGJx+fncYCoSsNNe419cJwhGPI6VJ+pvosJVeIftrMj rkb0ctNpM7wUImjtIq2EplTXe7oFL+w9Xmp8bW07qw/k/BDq1vn6n4NGLKj3cQiLiPZG UqFeP8JSwlZieB3a7d0AGU7y2JQAG2+2hjsRNYoaZeGP0kgVUFFhSTf6WBIlWaGjbrIE QnT4HaRP9HFK2+PTP1Eauu4WMQ1SZxDex0KatSGbFee8SIikdEsdprL9s4xPfRHhAgMb tR4g== X-Forwarded-Encrypted: i=1; AJvYcCUFDjmGEmF6mBjJf2Aeb3GoxTjtvuPxUrpz2uqofj8NcsGnfXHXd3TuXV90znj6tAU70z3LG4awTY4=@vger.kernel.org, AJvYcCUz6f28nvBvjvEZbEby6Eu1WGfOFoSc54bBCb7v9dVK8y8Jp1+nKrJGVy3MVA3yxY9szGdpWyPR///knZxo@vger.kernel.org X-Gm-Message-State: AOJu0YwxNjQqz+tITKR4WRv7fsqD43Ak3BOAczZ8viuv0HNOvTWgqx1f oIEdTQO5l94a1cAOqRL7TZRUKE1+aTsm9ZPlYAOiUspfyHsBtK8RTVhooIXXEg== X-Gm-Gg: ASbGncvVk8hsMS7SiRb/zTuWH3nRr/Z1byktz5N/BNCw2RIDEOxOpyxlfP3+3SKkfGG AC1PW4atuv2EzokNudNnusgwMdoEg6vgHmtLJJfI8uEwquaPaCkyh3Sf2EiSAz6aMkmHEhFupon 6oPgB0oJjK1DbuKGcTQH6tqOdnvsmEDRcNqo4WwGRkJcwV0XUyRqVBFQHYrwxLRa3zqFHK4qF30 qSspHZT1vFGkYBVySZXO2Xx/N5Prmb4MSjXxW8KIAlxZp5Y4LocyYoiboK3BgihpNThQHZXWq1v DbCGwNPdQUnT60DnWALl7TH6Zuk+iXJP3QsGXpA4cZBggJGolnr+/BGh8TMMi9/W18piFQ0gsLz SB4BwX9O1lumaNDwD9YcBVpB3LSeLsGNk+BBfr/02i7I= X-Google-Smtp-Source: AGHT+IFlo58+shaatwrcSK3z92CxM5zcfRVC7mFQfOpwfhIPPC64bmge/xE/VJyP1a2lBc5ROadoGg== X-Received: by 2002:a05:690c:102:b0:719:4c68:a70f with SMTP id 00721157ae682-71b7f7f5e71mr172583967b3.20.1754410855971; Tue, 05 Aug 2025 09:20:55 -0700 (PDT) Received: from bijan-laptop.attlocal.net ([2600:1700:680e:c000:2c65:e45a:e7d5:5f0e]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a5cdfc5sm33098757b3.77.2025.08.05.09.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Aug 2025 09:20:55 -0700 (PDT) From: Bijan Tabatabai To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: sj@kernel.org, Andrew Morton , corbet@lwn.net, Bijan Tabatabai Subject: [PATCH 2/5] mm/damon/sysfs: Implement a command to only commit scheme dests Date: Tue, 5 Aug 2025 11:20:19 -0500 Message-ID: <20250805162022.4920-3-bijan311@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250805162022.4920-1-bijan311@gmail.com> References: <20250805162022.4920-1-bijan311@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bijan Tabatabai To update DAMOS migration dests, users need to write "commit" to the "state" file of kdamond, which will recommit all of the damon parameters. This patch implements another state file input command, "commit_scheme_dests," that only commits the DAMOS migration dests. This provides two benefits: 1) It is slightly more efficient 2) When the "commit" command is sent to the state file, ctx->next_{aggregation/ops_update}_sis are reset. If a user sends the "commit" command frequently (relative to the aggregation and ops_update periods) to update the migration dests, the aggregation and ops_update events will be prevented from triggering. Having a separate command side steps this problem. Signed-off-by: Bijan Tabatabai --- mm/damon/sysfs-common.h | 3 +++ mm/damon/sysfs-schemes.c | 35 ++++++++++++++++++++++++++++++++--- mm/damon/sysfs.c | 27 +++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/mm/damon/sysfs-common.h b/mm/damon/sysfs-common.h index 2099adee11d0..3189b2bda079 100644 --- a/mm/damon/sysfs-common.h +++ b/mm/damon/sysfs-common.h @@ -59,3 +59,6 @@ int damos_sysfs_set_quota_scores(struct damon_sysfs_schem= es *sysfs_schemes, void damos_sysfs_update_effective_quotas( struct damon_sysfs_schemes *sysfs_schemes, struct damon_ctx *ctx); + +int damos_sysfs_set_schemes_dests(struct damon_sysfs_schemes *sysfs_scheme= s, + struct damon_ctx *ctx); diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index d355f6c42a98..d30c8b6575c2 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2445,10 +2445,9 @@ void damos_sysfs_update_effective_quotas( } } =20 -static int damos_sysfs_add_migrate_dest(struct damos *scheme, +static int damos_sysfs_add_migrate_dest(struct damos_migrate_dests *dests, struct damos_sysfs_dests *sysfs_dests) { - struct damos_migrate_dests *dests =3D &scheme->migrate_dests; int i; =20 dests->node_id_arr =3D kmalloc_array(sysfs_dests->nr, @@ -2468,6 +2467,35 @@ static int damos_sysfs_add_migrate_dest(struct damos= *scheme, return 0; } =20 +int damos_sysfs_set_schemes_dests(struct damon_sysfs_schemes *sysfs_scheme= s, + struct damon_ctx *ctx) +{ + struct damos *scheme; + int i =3D 0; + + damon_for_each_scheme(scheme, ctx) { + struct damos_sysfs_dests *sysfs_dests; + struct damos_migrate_dests dests =3D {}; + int err; + + /* user could have removed the scheme sysfs dir */ + if (i >=3D sysfs_schemes->nr) + break; + + sysfs_dests =3D sysfs_schemes->schemes_arr[i]->dests; + err =3D damos_sysfs_add_migrate_dest(&dests, sysfs_dests); + if (err) { + damos_destroy_dests(&dests); + return err; + } + + damos_destroy_dests(&scheme->migrate_dests); + scheme->migrate_dests =3D dests; + } + + return 0; +} + static struct damos *damon_sysfs_mk_scheme( struct damon_sysfs_scheme *sysfs_scheme) { @@ -2530,7 +2558,8 @@ static struct damos *damon_sysfs_mk_scheme( damon_destroy_scheme(scheme); return NULL; } - err =3D damos_sysfs_add_migrate_dest(scheme, sysfs_scheme->dests); + err =3D damos_sysfs_add_migrate_dest(&scheme->migrate_dests, + sysfs_scheme->dests); if (err) { damon_destroy_scheme(scheme); return NULL; diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index 1af6aff35d84..c2b036abb25b 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1188,6 +1188,11 @@ enum damon_sysfs_cmd { * to DAMON. */ DAMON_SYSFS_CMD_COMMIT_SCHEMES_QUOTA_GOALS, + /* + * @DAMON_SYSFS_CMD_COMMIT_SCHEMES_DESTS: Commit the scheme dests to + * DAMON. + */ + DAMON_SYSFS_CMD_COMMIT_SCHEMES_DESTS, /* * @DAMON_SYSFS_CMD_UPDATE_SCHEMES_STATS: Update scheme stats sysfs * files. @@ -1230,6 +1235,7 @@ static const char * const damon_sysfs_cmd_strs[] =3D { "off", "commit", "commit_schemes_quota_goals", + "commit_schemes_dests", "update_schemes_stats", "update_schemes_tried_bytes", "update_schemes_tried_regions", @@ -1478,6 +1484,23 @@ static int damon_sysfs_commit_schemes_quota_goals(vo= id *data) return damos_sysfs_set_quota_scores(sysfs_ctx->schemes, ctx); } =20 +static int damon_sysfs_commit_schemes_dests(void *data) +{ + struct damon_sysfs_kdamond *sysfs_kdamond =3D data; + struct damon_ctx *ctx; + struct damon_sysfs_context *sysfs_ctx; + + if (!damon_sysfs_kdamond_running(sysfs_kdamond)) + return -EINVAL; + /* TODO: Support multiple contexts per kdamond */ + if (sysfs_kdamond->contexts->nr !=3D 1) + return -EINVAL; + + ctx =3D sysfs_kdamond->damon_ctx; + sysfs_ctx =3D sysfs_kdamond->contexts->contexts_arr[0]; + return damos_sysfs_set_schemes_dests(sysfs_ctx->schemes, ctx); +} + /* * damon_sysfs_upd_schemes_effective_quotas() - Update schemes effective q= uotas * sysfs files. @@ -1644,6 +1667,10 @@ static int damon_sysfs_handle_cmd(enum damon_sysfs_c= md cmd, return damon_sysfs_damon_call( damon_sysfs_commit_schemes_quota_goals, kdamond); + case DAMON_SYSFS_CMD_COMMIT_SCHEMES_DESTS: + return damon_sysfs_damon_call( + damon_sysfs_commit_schemes_dests, + kdamond); case DAMON_SYSFS_CMD_UPDATE_SCHEMES_STATS: return damon_sysfs_damon_call( damon_sysfs_upd_schemes_stats, kdamond); --=20 2.43.5 From nobody Sun Oct 5 10:51:33 2025 Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24AA2292B55; Tue, 5 Aug 2025 16:21:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410862; cv=none; b=btNBxBMfDN99xLGt83waWs9DNaSP+pCdZVGrX3tlqt3zyhc7kWCz9NV/AYbLTpLw2X9hEnarqrDNiBfBqTvJ3WG6VWW0xO4ADdi7rc0IpsgEMms5OHD6p5bZarBaRVBuvhjT1sDSpPdBGhedUuXwKiBYhGhCIavZDpJbrC4tJbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410862; c=relaxed/simple; bh=UK5iJbYNS2bkATUR/j8SSeeGik5UMeQlVxFcKrIdg3M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LfSBSm4KmlK0F7jTOpwPpWv3fwiE22XITuZgyJG/VIWjQAwc0xlerTZRORYOr+ceyCiwRm1bdxqfLEtVWJAn1t68IrBMJIEM6NPBghsRFBSzb7hJoopV8nPdsH/0/IkxskQCzSUq0oxlap7A9yBP9ZJzcu0Xat2/blcZcCJkdX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dLIz/Vr/; arc=none smtp.client-ip=209.85.128.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dLIz/Vr/" Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-70a57a8ffc3so56154987b3.0; Tue, 05 Aug 2025 09:21:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754410860; x=1755015660; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FTHZI7K9+4GxRlV7Vt7J0J39jlZPj/iqR6Wo5lhHevk=; b=dLIz/Vr/Dz3+TIcWyD2ix7l2uc+VXRfzftkv/BNsiN0jQaRD094IpQMavxXd6+m+nA fBOoDSBXwJm+9Jewa09Yznvi6nMQj4Pm33Rp4F+dlY6+9ZHhZQ2MVK0aMiRxbtkGjTQ8 +nWctVnC/QCwiYlX/PKFcWtfokASyiaLh0gqohT67oDSWjn6+cfHGnP6J623fxNL+HCV rjHVsWqb3CMI3HbkA7xwaM6KG3pvaUQ307WLUUOjWZYlX1SJzIMXaPoLTKJiM10t9IZM keoCLTzjwaLqR2kIqQM/G2uXD17l7wjbie1SVjPMnoze+WiisHWIjU51U5iWfyZQyYk6 w6sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754410860; x=1755015660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FTHZI7K9+4GxRlV7Vt7J0J39jlZPj/iqR6Wo5lhHevk=; b=uq1BlSM3a+9Vp2aZHXa+SWTnekYyeiUU5tA/aK/lB5GYFOfRjDF9+78l+cO3jUehZY ePGxaqGta0YPlo1fXBUxuYx+Y+voPDj8sFsh/hcpMgHyrGgbuiu9QDM4rXDdhbgYeiZg RHkgmzk67KuodF1hsykfjytQiCwfLN2dSjgROBDGCxfzV3bDjjN7QAoSzWrs56kug23O S1K3ZnhQdIl98w3CKkTxhEj8bdtZuT0TwaF5d0tEocFt0OynuxUhsCXlncp6FrnTeeHj 1jjQBvVhhHloR3c8mS9mxpz4f2NKHe5aTYPOWx/96uSash9HNKdOYBnAugNGaq8U7Lny 8WAQ== X-Forwarded-Encrypted: i=1; AJvYcCUC6BKeJj7oFAGvMDgZijszQA9F7qMhCjHNBEQomSnylkC+HFe0Pd2mXDZW3ton0HINkuotB5UszHprNdmX@vger.kernel.org, AJvYcCW+fCQSfQKdBKoRuCkPjigFvwRGoWMIgSZoi6fjS04USTLDZ/5XhRECbW6Eqrt/0jfzqaIwvdBcGZ4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx5kBtaJpcI+WHum/sqTzSWGsRFRH1oT8yHV8WwGxOb74SwMTZe RxR2gOHcQj/5jr6DYAIrgcaZ4h35jEj//nznAEb1JuwkoOMPHQqvvocI X-Gm-Gg: ASbGncsX+l/4Zu/ML1oX7LCxIWf5RPb8FIRZCaaKdjjL26oTeZbKaIGTdKeN3dK3d8C VcIDaYT76TsR+JOKBT8TUxDn2BwYAfeX89FvGmFCP6iLSPD9yMwTjDixZA2plAY6UkZ40Xre+x0 VYRFLennYOrm6jqx2JWCPQiJCpDw4l4zwMLVHhOraEf5fsW81O7A8IuDP6Jk9oydDhHhb8K53mt 7f71BSXHcCgoYkdIlu/I5NPeQSgH+3rut9cFHt3NPl86NmUOesu+hppjkeK9iPN2e3IsI6RPca2 80HoP97VMS2ucEx09WdaWCXLZ3ZAGtTseZLIjc6KMaXoPy7gi9ZRACUgSIVIuS8vp9zoRy1ClYj LnpITOwHceY4Y5OUPPkXHQO/aVs4RdVXmOWBwDJVg6C4= X-Google-Smtp-Source: AGHT+IEvW39T/sWp90HWrVkoCtc3N9MROV6TVWwJCqhkh0uDVhaEZjbOJNyDmjL1eVTf6OAsvjkH2A== X-Received: by 2002:a05:690c:6085:b0:712:d54e:2209 with SMTP id 00721157ae682-71b7f5f743fmr175406147b3.14.1754410859891; Tue, 05 Aug 2025 09:20:59 -0700 (PDT) Received: from bijan-laptop.attlocal.net ([2600:1700:680e:c000:2c65:e45a:e7d5:5f0e]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a5cdfc5sm33098757b3.77.2025.08.05.09.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Aug 2025 09:20:59 -0700 (PDT) From: Bijan Tabatabai To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: sj@kernel.org, Andrew Morton , corbet@lwn.net, Bijan Tabatabai Subject: [PATCH 3/5] mm/damon/sysfs: Implement a command to wait until schemes are applied Date: Tue, 5 Aug 2025 11:20:20 -0500 Message-ID: <20250805162022.4920-4-bijan311@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250805162022.4920-1-bijan311@gmail.com> References: <20250805162022.4920-1-bijan311@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bijan Tabatabai Any DAMON command that uses damos_walk() internally, such as update_schemes_tried_bytes and update_schemes_tried_regions, waits until each scheme in the DAMON context have finished. This can be useful, for example, if a user wants to know when new scheme parameters they've committed have been applied. Another use case could be if a user wants to record the system state every time a scheme is applied for debug purposes. This patch adds a new command, wait_for_schemes_apply, which calls damos_walk() without a walk function so that all it does is wait until all schemes have been applied. The same functionality can be achieved by using update_schemes_tried_bytes, for example, but having a separate command for this avoid unnecessary work. It also makes user intent clearer when used in scripts. Signed-off-by: Bijan Tabatabai --- mm/damon/core.c | 3 ++- mm/damon/sysfs.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 07b4fc5a9790..56a13d16e4d1 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1731,7 +1731,8 @@ static void damos_walk_call_walk(struct damon_ctx *ct= x, struct damon_target *t, if (!control) return; =20 - control->walk_fn(control->data, ctx, t, r, s, sz_filter_passed); + if (control->walk_fn) + control->walk_fn(control->data, ctx, t, r, s, sz_filter_passed); } =20 /* diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index c2b036abb25b..ded3f60e4e22 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1223,6 +1223,11 @@ enum damon_sysfs_cmd { * intevals. */ DAMON_SYSFS_CMD_UPDATE_TUNED_INTERVALS, + /* + * @DAMON_SYSFS_CMD_WAIT_FOR_SCHEMES_APPLY: Wait for all schemes to be + * applied. + */ + DAMON_SYSFS_CMD_WAIT_FOR_SCHEMES_APPLY, /* * @NR_DAMON_SYSFS_CMDS: Total number of DAMON sysfs commands. */ @@ -1242,6 +1247,7 @@ static const char * const damon_sysfs_cmd_strs[] =3D { "clear_schemes_tried_regions", "update_schemes_effective_quotas", "update_tuned_intervals", + "wait_for_schemes_apply", }; =20 static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *att= r, @@ -1643,6 +1649,25 @@ static int damon_sysfs_update_schemes_tried_regions( return damos_walk(ctx, &control); } =20 +static int damon_sysfs_wait_for_schemes_apply( + struct damon_sysfs_kdamond *sysfs_kdamond) +{ + /* + * damos_walk returns after the next time all of the schemes have been + * applied. We don't need to do any actual work, so walk_fn is NULL. + */ + struct damos_walk_control control =3D { + .walk_fn =3D NULL, + .data =3D NULL, + }; + struct damon_ctx *ctx =3D sysfs_kdamond->damon_ctx; + + if (!ctx) + return -EINVAL; + + return damos_walk(ctx, &control); +} + /* * damon_sysfs_handle_cmd() - Handle a command for a specific kdamond. * @cmd: The command to handle. @@ -1688,6 +1713,8 @@ static int damon_sysfs_handle_cmd(enum damon_sysfs_cm= d cmd, case DAMON_SYSFS_CMD_UPDATE_TUNED_INTERVALS: return damon_sysfs_damon_call( damon_sysfs_upd_tuned_intervals, kdamond); + case DAMON_SYSFS_CMD_WAIT_FOR_SCHEMES_APPLY: + return damon_sysfs_wait_for_schemes_apply(kdamond); default: return -EINVAL; } --=20 2.43.5 From nobody Sun Oct 5 10:51:33 2025 Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F1DF2957CD; Tue, 5 Aug 2025 16:21:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410866; cv=none; b=OeuXymbmheTdSpyqUS8FWMLhrIkeSqeVBqHZJhO9JXBReVfystHBVc+UPcjWMvcpE4ZYELVMIOIqkvyQwzFS8sZbhsONMa7Cm02LtPyXEO4KUDNXGyutEzcpGy13B+3pjVnBiVNP8SlGxORG5Z7ZBY81VKiWucNkx6I4Z88IsoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410866; c=relaxed/simple; bh=sRiz1J40qM7F1f5zbR2yuHtbqdCjGQCfPAToa5nzbY4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RrlqNgCKx3x3uO2ty46p1KAhmdZ8vt9PfthXEeYrdU8uK+CWTNcjxVWgPXylyLJTu9RnZaH4BIEw0rQdP6sr+YzmIZZCD6MD9c++5vvphPv30VfR2XfMTbCMqQEfuso7ut5DILGUjjQjZWdooPZd3QBUiPq/fiH7WJBVZKDfWDc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=D5GsBm6f; arc=none smtp.client-ip=209.85.128.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D5GsBm6f" Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-71b4b36d0bdso45327517b3.1; Tue, 05 Aug 2025 09:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754410863; x=1755015663; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BjNpkvSXW+v2m5Yu69UUOTo/LokqTIxoGaybS6E7Cys=; b=D5GsBm6f7ATK53xLGHBaYX9dK+sbEo35h0g2iHEW2jDJv7P3X3vVQZnqLio8Ez8OgJ pQfL2ohrH4qwJA0HDjz9JrZbV0EN0IllC8idWF7XsImudefbQZxJqDv0n87+w0H+xvN4 MJVKq+x8C0Z9OnBgvY9rMoyC/Lb0FkTOwsVJyXjbHeTLpnZ9CCMwCAtvVGbTDJwxGsYk RxZtk7/ZRMz2A0tzTjE1fDEK5t5VxX/9D18uQxXGUARXQgK/8ehJNEAKC9f0zBgmpFUd KVPSTRLq7Vl4QPlcUx6gc7Kv8oMMpIQtQGZP4trvGMVeG24r1W0wCyvqWtsPGajiHJgj xtpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754410863; x=1755015663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BjNpkvSXW+v2m5Yu69UUOTo/LokqTIxoGaybS6E7Cys=; b=tv4rySS+sanxozxlQ1oJWPYV3cIbvn/b4BIAY1l/RsdLhO3ITrWi49pi1EsgD7k43h YnW+6VdyLwf95g+WV4uam5/q1GYKUQrQleruNT0bfZCgqP5ZWkjNCjeJcyYe32SwGrgw l1Rm3mYKE3bDnM8XqE81fXbArW9O+AdnosrZxG9IPxasCUedSOprhgIcSCG4v8Pxjqmy +4K5NUklYcXNnhHI6Dw+jlf/YYuUR7GBZqGDqaENFe5bOCzhp9StKRt0+ZznKwrIl8iA 84ZG9HcjFqFVZeMDtKdqZ2QcO1C8glTuYGGLqkdUFR1WYyXZsFy+12t+BO9IL3LVZEbu EtTg== X-Forwarded-Encrypted: i=1; AJvYcCU/Wrc40yrrPQIwuu0VuXBK5DAyCSLQBWV0YfWydWiVSZGY0E0oXqDnbmKFp2ATjNmpNiJB2iaVYeQ=@vger.kernel.org, AJvYcCVCuHWf4C5AK/3aBaJG2I5RXXPCyLRkduK2BEbNbceEK3o3F6ieZe+uZmgmsrPTUvI6Cd7eH/xUtVp6ZcTS@vger.kernel.org X-Gm-Message-State: AOJu0Yy9uoLR0apCzK+9RHHsX7hidBxYs+dh4tEFEG9xqhLG9Skwy163 LpjZZnxuxeXV8J1Osq48lxC0evH2Iu8G3zE5dBNP1UX7HCkiOPUYitvc X-Gm-Gg: ASbGncs0CZH0Nokqzi9LgyWE/bYJ80W9eQ10fk/25xvTUkvVr/8njAQOu/cR9M5+StK hVd5yubRJwbK+sqCml2RaUeR6AfI6NN95/g28Tq6gdfocAWRM+epO8lhHMaxTnd9YM7PNYOQeSz 2pgf5VyxGQs7J8Z5PlUSGWtCOwjdzls+ylqzPSNZcL0HAuW+MoUQq56zcpoAFDWocd4gVPNzU1M HLVdV3lRe9lVDvGRft5oujezCUUp5TRL4Gbma/dyuiJVdqdbtArZbt0NJou566tNHqiLvTwfB5d k4kw7Ymifv+kQsrAUpCGkLIPnrA89CQc/BuTHupECiL7l49kYtYmvHLGydbKgmAw/1i8ZNkCCcK aOMNI57ohfRBHaGnHiPJfjjFngbtJMjYkWQt4J6uyndY= X-Google-Smtp-Source: AGHT+IEQM0QlTGhxyMPibEvEMDpbAzpmE9uEnXqB1fB3pRbIadxeRKgx9pmHX+QFoHCpre2n2PEesg== X-Received: by 2002:a05:690c:8694:10b0:71a:34c6:706 with SMTP id 00721157ae682-71b7ed8b056mr123189357b3.17.1754410863480; Tue, 05 Aug 2025 09:21:03 -0700 (PDT) Received: from bijan-laptop.attlocal.net ([2600:1700:680e:c000:2c65:e45a:e7d5:5f0e]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a5cdfc5sm33098757b3.77.2025.08.05.09.21.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Aug 2025 09:21:02 -0700 (PDT) From: Bijan Tabatabai To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: sj@kernel.org, Andrew Morton , corbet@lwn.net, Bijan Tabatabai Subject: [PATCH 4/5] Docs/ABI/damon: Document new DAMON commands Date: Tue, 5 Aug 2025 11:20:21 -0500 Message-ID: <20250805162022.4920-5-bijan311@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250805162022.4920-1-bijan311@gmail.com> References: <20250805162022.4920-1-bijan311@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bijan Tabatabai Document the new commit_schemes_dests and wait_for_schemes_apply DAMON commands. Signed-off-by: Bijan Tabatabai --- .../ABI/testing/sysfs-kernel-mm-damon | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentatio= n/ABI/testing/sysfs-kernel-mm-damon index e98974dfac7a..429947de9aba 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -27,16 +27,19 @@ Description: Writing 'on' or 'off' to this file makes t= he kdamond starts or makes the kdamond reads the user inputs in the sysfs files except 'state' again. Writing 'commit_schemes_quota_goals' to this file makes the kdamond reads the quota goal files again. - Writing 'update_schemes_stats' to the file updates contents of - schemes stats files of the kdamond. Writing - 'update_schemes_tried_regions' to the file updates contents of - 'tried_regions' directory of every scheme directory of this - kdamond. Writing 'update_schemes_tried_bytes' to the file - updates only '.../tried_regions/total_bytes' files of this - kdamond. Writing 'clear_schemes_tried_regions' to the file - removes contents of the 'tried_regions' directory. Writing + Writing 'commit_schemes_dests' to this file makes the kdamond + read the dests files again. Writing 'update_schemes_stats' to + the file updates contents of schemes stats files of the + kdamond. Writing 'update_schemes_tried_regions' to the file + updates contents of 'tried_regions' directory of every scheme + directory of this kdamond. Writing 'update_schemes_tried_bytes' + to the file updates only '.../tried_regions/total_bytes' files + of this kdamond. Writing 'clear_schemes_tried_regions' to the + file removes contents of the 'tried_regions' directory. Writing 'update_schemes_effective_quotas' to the file updates - '.../quotas/effective_bytes' files of this kdamond. + '.../quotas/effective_bytes' files of this kdamond. Writing + 'wait_for_schemes_apply' to the file does nothing but wait until + the next time every scheme is applied. =20 What: /sys/kernel/mm/damon/admin/kdamonds//pid Date: Mar 2022 --=20 2.43.5 From nobody Sun Oct 5 10:51:33 2025 Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EA1829826A; Tue, 5 Aug 2025 16:21:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410870; cv=none; b=LraK2Z+NEfE6yeiwprO4ROYduFO7wB2CO46UWQM7wW3InZbbBf+dqeRl6k2H9QJbm13KF03AoyEzD29piMUWm4Xf50GZSOZatbGZhFJ/gWXIdp/OFmHsCD0/eVdm3MT+5jGODsy/ysmaHYJw1tV62D4oYqV8qk5oQTpw4/5cIoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754410870; c=relaxed/simple; bh=5O6p11q/Cm+Ve3FqC6ad3rDEA993jGbgYys+cf11XNw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i5o4tAzMgmtkBshHJE7+OuFg5jqokDRA3zE4i11QZwtPgFSk/4WXt+YfHHudpafba2ednXOqQwGyA0DVo8uXOTyLhu9BfeIMTB6uumxheWKKS1N0+11rcdEWBOZ/9g2PnzY2dZP3sj74ll4hNahgxGFM2P4GIWGjoP71vWkU1iQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lXEuSu8x; arc=none smtp.client-ip=209.85.128.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lXEuSu8x" Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-71b52d6d1e3so58250717b3.1; Tue, 05 Aug 2025 09:21:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754410868; x=1755015668; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=o2I8Y6YCxsX4TWyWrlqz+OvW3M3f6/2nWl2bm4+fH+c=; b=lXEuSu8xiDzzZCNiEISU7lk1Uz0waaaabj5DFtF9TJntzD1L8tvlcXJoBatPL0pxLD Kh7GY5xAk42+/DJd5V3miL8tQVfpXDnwve1UGZPjnrG4MozJUxtQCW8ZJi46UOol9xN9 dkvHRiAEta3AeNtVcAWq4GbwWW9cxGadxo+mUBzClJWavezld/BReZrPGqSjEBn/lxFb LOqMzjxXNaYDa+yyLXhZXswuxUjBszFrVl73d40vIveWeFwAERNRb8ACI9E14XoQS8RW Y5Z4MzABe+0e1E/LyBrMTaxDyEHh1NIBtY7OQI0f0XG724+3NTZDsFqLgRYHDqk58UGr lvEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754410868; x=1755015668; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o2I8Y6YCxsX4TWyWrlqz+OvW3M3f6/2nWl2bm4+fH+c=; b=GCRpgyR4iwfU5VzxIFOfQxM/8fCk5wM2SMkVA6dbJAqL0VjzKVgnTEwbdaGZkVsXfQ R3ye5kM4xIdeKx3uIFfvUpOJNHSdsl7qQuuRF//fmql92N+rg/QB2Hxn/xllb0RSUVCe fQxDp1rEQaByc7rrIdibHtCoLR4FFVJ9VNag4i73LRnXKNWYDac39mlM8mec3l7aPUG8 w1Y8f06gXvE61mwCY/YNORdhWiMalXz7ScyTyepEe+mkKi/+UucCz5usCMCwvIxbooY/ wKv6e++A8La1dcdGnXmwKLu1m6oSimvM4AYc5OteElZvroqKY0r3XJrOeZQOiomzN9FX 75cA== X-Forwarded-Encrypted: i=1; AJvYcCWfOVof+OL6am2XvW09x0jjEMjpVCA2tUwGII3TiFehyXSqS+s0snQy7mlFkvONx3e1MCvm8YLoS7SvCbxG@vger.kernel.org, AJvYcCX8cj2ku7l+nKGY3iYxwZKdRyChVdF/3ZeDpi0ISgxrvPzhkRVzQLiqIFEi0OeNuB0ZapBQJ+78w58=@vger.kernel.org X-Gm-Message-State: AOJu0YzvpQkfEMNTuh9Q+lzqxt4iqSmOh8QWImk59M9X9/jRL69pjqOH 2zZJmZ8v06Rlt2ZnRG9Y8f0b2hgOztKasscKbkAgwa+NeB5K/XSMBaxy/GuwHA== X-Gm-Gg: ASbGnctKsKRx5zjwSZ7NFe3OyPrYLtMDZqewadvNlOayvEsuG9uYKzb1lD9OS0AxwM4 Rq1wMVNF3oGSNROcDAaMjThRJ5oyuWMJHEoibWiYQpk/uqM4ltL9tvELYmkltWSX2ZphaLBGDX2 TXDKhIQgB1X7FWm90TEeIj5wSHFIQGMuIeITB6S4L0ww3dJrFhcJpICF4z5Cw6aKlljcgodV1gK NmIofxOKIkL0s6aUlmouvXH+QnBbeU08pCrqNDwydTHRy+6y3cMChAXvbeONgaxhnsBThSv0En3 F415jiYMVWYBW+mKG3LjebDtV/T/HcZO/otkqxxiwAmFaLrGj3A+xm6wsx2aqkNxIBqPseXQWB2 SRSj0V9FKbs5tJjVZdA9HdPz2LzUMhBokODtZ16JRe3c= X-Google-Smtp-Source: AGHT+IGS4lh1JrnZOMCC7QWGY68gCUxCM5gOUlyEM6e/iXESyuVJbUue1PFdHnmYU2Ldv5Xe1WJeww== X-Received: by 2002:a05:690c:7107:b0:719:a34b:5e50 with SMTP id 00721157ae682-71b7f5950d2mr163236987b3.21.1754410867586; Tue, 05 Aug 2025 09:21:07 -0700 (PDT) Received: from bijan-laptop.attlocal.net ([2600:1700:680e:c000:2c65:e45a:e7d5:5f0e]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a5cdfc5sm33098757b3.77.2025.08.05.09.21.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Aug 2025 09:21:07 -0700 (PDT) From: Bijan Tabatabai To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: sj@kernel.org, Andrew Morton , corbet@lwn.net, Bijan Tabatabai Subject: [PATCH 5/5] Docs/admin-guide/mm/damon/usage: Document new DAMON commands Date: Tue, 5 Aug 2025 11:20:22 -0500 Message-ID: <20250805162022.4920-6-bijan311@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250805162022.4920-1-bijan311@gmail.com> References: <20250805162022.4920-1-bijan311@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bijan Tabatabai Document the new commit_schemes_dests and wait_for_schemes_apply DAMON commands. Signed-off-by: Bijan Tabatabai --- Documentation/admin-guide/mm/damon/usage.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/a= dmin-guide/mm/damon/usage.rst index fc5c962353ed..46b6260855d9 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -142,6 +142,8 @@ Users can write below commands for the kdamond to the `= `state`` file. for more details. - ``commit_schemes_quota_goals``: Read the DAMON-based operation schemes' :ref:`quota goals `. +- ``commit_schemes_dests``: Read the DAMON-based operation schemes' + :ref:`migration dests `. - ``update_schemes_stats``: Update the contents of stats files for each DAMON-based operation scheme of the kdamond. For details of the stats, please refer to :ref:`stats section `. @@ -158,6 +160,8 @@ Users can write below commands for the kdamond to the `= `state`` file. - ``update_schemes_effective_quotas``: Update the contents of ``effective_bytes`` files for each DAMON-based operation scheme of the kdamond. For more details, refer to :ref:`quotas directory `. +- ``wait_for_schemes_apply``: Wait until the next time every scheme has be= en + applied. =20 If the state is ``on``, reading ``pid`` shows the pid of the kdamond threa= d. =20 --=20 2.43.5