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 C2557C83F10 for ; Sat, 12 Jul 2025 19:50:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 101FA6B00A6; Sat, 12 Jul 2025 15:50:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0B07A6B00AE; Sat, 12 Jul 2025 15:50:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F08836B00B0; Sat, 12 Jul 2025 15:50:23 -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 DB2956B00A6 for ; Sat, 12 Jul 2025 15:50:23 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 68698C020B for ; Sat, 12 Jul 2025 19:50:23 +0000 (UTC) X-FDA: 83656654326.11.E1C7197 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf26.hostedemail.com (Postfix) with ESMTP id AB70514000A for ; Sat, 12 Jul 2025 19:50:21 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AXF+bFBM; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.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=1752349821; 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=odZVkqdnOvyT981+UBEiA+l6WFhzLzhC+XNY8nju7Xs=; b=p/EhwwE1Y1azgilAXYArHtHBGpCavhE4Rhz0d9CpZt8MZgvyTCXcqH25k2TAFICSZOf1Te VQVGtz2XyyayR7OZeT48eFQoeu0Fk2xD3yGESfEwu7iM6YUiP8JqwCFOHzkylYpbIHPUha DOHYHHvcB4A9Lmgho2kebts4Xi9bRJY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752349821; a=rsa-sha256; cv=none; b=DVjAOQPdaVXG5RAlHrUghPzWYEAVkzMu48e8KZWY/VQS71x+veg+aDRVzFoxVuoerhQUso umZ+NEvOPVKMpnldUeaw/3+oFUZgK3z6uurdbBkyq7sGQTyUIBVYAZZGaOT8HNz/sakDME BEv52MjGVhQ8CRH1c4E8I3FhQft0XcM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AXF+bFBM; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.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 6B98E46277; Sat, 12 Jul 2025 19:50:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2104DC4CEEF; Sat, 12 Jul 2025 19:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752349820; bh=iMXyEafbKbZx5VH4yI00DVv/yYVsMaNu/+JwZ+hQPjI=; h=From:To:Cc:Subject:Date:From; b=AXF+bFBMDO53rD9LUEJT9cz4+J8lvGOcHXqXShZ/C9YuLQmuh51nLTppgJQN2UKxL 3pg88rCuqRup+v2i8Y8Fdr8pVmCL2/Sd0Nk/qfURyMmalERi8BFpJlM8HPnv38hZ1E qyThFAiZ0KO548cJy53a+VPlaJ0VsZwMs3cKfWKtPyfsVzwN7mJEWlQmFwxoiQQVS4 Svzz3bIRN/vNlo+fx6voEhYELRcX04D1WxJ1xhnL+Y3eO1Ce8yUVfLCbxixhN8h1R1 0KPDtycLqsiq62XpwIfBekWYu7md4KhWqyHJeJWIE/SM34zGQrVWMi2u+KhqrtA6rU RwcIr/ECEu2YQ== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 00/14] mm/damon: remove damon_callback Date: Sat, 12 Jul 2025 12:50:02 -0700 Message-Id: <20250712195016.151108-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AB70514000A X-Stat-Signature: 3o5yfhwqu7bmc11kiox6xc6pbjo9jnow X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1752349821-381620 X-HE-Meta: U2FsdGVkX1/a7ZMidetcSalnXPZ7kB4VelcrPT/YtnDk2gGKYc8+zUjsrrseAidqBoJJr2ydvkJz8WyGCAhSn/saLbYEz9Orz3VOkXEC+ny0zc0a4GgB3lHX9SPSGUy8mM/elbAh/MnZdH3F6ygOIHJQofIr36Bli5a+33RoSdWaMBCy9uyIOF/hMmv70xu5zSaEzFmuFN0QsW2BkycX16Ljhi4jrrFu+64jX4qtl22HCSMd7pSpOEp5RF9ZWSlH+HHA9ouCvMg7R5deZN4Trhy7D/mpQdWfpVwetqrmYFQUWt82+n8uavJmPaSlnWaoAnGqUB+JsQZjN+yT2RdG3vDVixHGQbOXTpq8eqryxzd1ahkXXsOEVIfYj03ia8O4FaD/qkQrhXW7yI+rlq7QMFEKcOD5XwT9UKy+iYIcW4w9fxDXspqxQN5EKwXZQGRNP9SP9ivN7SUWtQv7lIxfzUakLBhGtaXVOV+Q6M7pZtVS/+vYFOudIKzlX6Up6erxoWaoCZVWgR1yFyyATuaBBMT5hlbKhmlZ0Wq3zKX+ZR0FCqLITqR46rvg3I/SFRQov7kNB6vTp0xEegJeLeXMdWIDlp/zHMESMMiyMz9CAZLr6Zlu+gtHttRucFvHT4EPuNumDq7274xTWw/Oq4CBusqllUA+nznGUknIgnJSnhhzXFoOhTa55bVY9cdElKTIXWyIJVXL7sZrybv/DtnHlcsu2wRlDxzanpEpSaZZ2cZOn+wCtTXB3P9CB5JXBOZfeu3OYpWXySPt5uGwODgKbM/Hh3x11JE2ZDQoI/UE4ut9WqfjupYs4amd71XYedgL4NDwzu7tyMhHv5aWKu5bPOsNNqeq+3ki+Vg3pSnK5rNVwWIvxPjoNYUGB/13SwQc7ie+OPePPxrtx5Ar7YfC66OiupkK5OfvBNSl1WitZekH4GliBBpSA8wJmOsKt9d6tzwXloTe//isqqhtdyk ibTMQgfD nQFFWJk4JxI37aY+HzExuqBHx0TF4S4Ajjz2zBwW7wPR7H9xnH6kuypVWL5N4soZq1aGsW8xeeu36OmiMm8JrXCF5LHJGZ8S2tuH7eXLsJlKUdfH84kye8uWxzCn8OyqCkHRa7OHZnJsL9cVPzRr/QQXNZrv17vD4Gz/zlZFC6Z/JPNdTU7as3wjmN+879DYg6vr5kok2aCBJi8LDhXAEoj9X2lp3Qnc6+JdJYaffUu+TFup7YpR1MB34Bd7Ydneat15jMSHuZwh/2NzUnwvG4696MA== 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_callback was the only way for communicating with DAMON for contexts running on its worker thread. The interface is flexible and simple. But as DAMON evolves with more features, damon_callback has become somewhat too old. With runtime parameters update, for example, its lack of synchronization support was found to be inconvenient. Arguably it is also not easy to use correctly since the callers should understand when each callback is called, and implication of the return values from the callbacks. To replace it, damon_call() and damos_walk() are introduced. And those replaced a few damon_callback use cases. Some use cases of damon_callback such as parallel or repetitive DAMON internal data reading and additional cleanups cannot simply be replaced by damon_call() and damos_walk(), though. To allow those replaceable, extend damon_call() for parallel and/or repeated callbacks and modify the core/ops layers for additional resources cleanup. With the updates, replace the remaining damon_callback usages and finally say goodbye to damon_callback. Changes from RFC (https://lore.kernel.org/20250706200018.42704-1-sj@kernel.org) - Fix wrong return from loop that prevents repeat mode damon_call(). - Remove unnecessary put_pid() from DAMON sample modules. - Rebase to latest mm-new SeongJae Park (14): mm/damon: accept parallel damon_call() requests mm/damon/core: introduce repeat mode damon_call() mm/damon/stat: use damon_call() repeat mode instead of damon_callback mm/damon/reclaim: use damon_call() repeat mode instead of damon_callback mm/damon/lru_sort: use damon_call() repeat mode instead of damon_callback samples/damon/prcl: use damon_call() repeat mode instead of damon_callback samples/damon/wsse: use damon_call() repeat mode instead of damon_callback mm/damon/core: do not call ops.cleanup() when destroying targets mm/damon/core: add cleanup_target() ops callback mm/damon/vaddr: put pid in cleanup_target() mm/damon/sysfs: remove damon_sysfs_destroy_targets() mm/damon/core: destroy targets when kdamond_fn() finish mm/damon/sysfs: remove damon_sysfs_before_terminate() mm/damon/core: remove damon_callback include/linux/damon.h | 44 ++++--------- mm/damon/core.c | 116 ++++++++++++++++++----------------- mm/damon/lru_sort.c | 70 ++++++++++----------- mm/damon/reclaim.c | 62 +++++++++---------- mm/damon/stat.c | 17 ++++- mm/damon/sysfs.c | 41 +------------ mm/damon/tests/core-kunit.h | 4 +- mm/damon/tests/vaddr-kunit.h | 2 +- mm/damon/vaddr.c | 6 ++ samples/damon/prcl.c | 20 ++++-- samples/damon/wsse.c | 18 ++++-- 11 files changed, 189 insertions(+), 211 deletions(-) base-commit: 2c92772b92095b79ca713f215b192b555e41f72e -- 2.39.5