From patchwork Mon Feb 10 18:27:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13968577 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 779CCC0219E for ; Mon, 10 Feb 2025 18:27:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 887BA280002; Mon, 10 Feb 2025 13:27:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 83793280001; Mon, 10 Feb 2025 13:27:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 503566B0083; Mon, 10 Feb 2025 13:27:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 289826B0088 for ; Mon, 10 Feb 2025 13:27:46 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8DD53453CD for ; Mon, 10 Feb 2025 18:27:45 +0000 (UTC) X-FDA: 83104868490.29.775CC1A Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf27.hostedemail.com (Postfix) with ESMTP id 0AA6840011 for ; Mon, 10 Feb 2025 18:27:43 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="a/pNKGsE"; spf=pass (imf27.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1739212064; 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=x+2wwioTuWS+yjkzrng20AqhidRUcelW87bhqqecj2Q=; b=EC2OGh+lw2acGVjfkrOeasjbnaOX9zbWtrWc1gCe4czoaY1xkNLWig1k4DCZZ1E0I0+Voq SdwnK7riigNC8SZiSQBdMbZeuyALS6FmDFJ+Nw/bKdGhD2RF1+Bg2dR8YdI+deiuMa9T1Y 1UL/dpi5aKBSDkA3SP0wAxbPfy8RFmQ= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="a/pNKGsE"; spf=pass (imf27.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1739212064; a=rsa-sha256; cv=none; b=vYAKZx4nvpAqTuWuWdvm6t3OkJtQEw/nKV+nUCMlu240U1Qx2SldbCr4ONQE8YxIoXSc/d 1ZzAXasHq4p8ZRzFspdwNWOYP+yQIT2SQGCZRlXOmGlg38Ch8MwEbkUKMX14Yf10qLzDat sEmk47ERHFCkMIZjMnS/+8N6cdsmrD8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id D1A46A41F7B; Mon, 10 Feb 2025 18:25:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4AC7C4CED1; Mon, 10 Feb 2025 18:27:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739212063; bh=LrSHEUWGR3qHfrIKo1moG6hK8HchQtQJ1sO0Uhs1DR4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a/pNKGsELlIKLxoPDcP0a9hKpMJ/C722aqX2HgUqkAWt53FMhmcwuPrY2xj/vFBVl cR4valunDe1rwOwFuuulPEJXvjb0uzAmTM4wF6e8cMALZgzqHE645s5srPVkbDD+4W dKlYod+/KhwfnZv86rh7nMfMsJx9KyZt2tn4UVZptMx/HxBFW98PYxP0XKuGIwaTag XRHB+4TN2QAq3Qa66rJMRPfWahjCedHXxaAaabVmu6OEi2HbCcRJUdCZX4DNu+qSVL gk84/jkYPjDAXbzZKUxITb7RG6BACQvVt8qbrP7lM233RYO0/alneV5cLG09WfpZS8 btNZtSn54q9Nw== 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 1/3] mm/damon/core: unset damos->walk_completed after confimed set Date: Mon, 10 Feb 2025 10:27:34 -0800 Message-Id: <20250210182737.134994-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250210182737.134994-1-sj@kernel.org> References: <20250210182737.134994-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0AA6840011 X-Stat-Signature: ntz5ukncbdopxm4mghiiyc6reozm1pza X-HE-Tag: 1739212063-53820 X-HE-Meta: U2FsdGVkX1+ceX66ZXwcBNsjivTioEPKRumvLGvae5XzkjJxK1cdB5ByDg3LJLcAOG5Sb43uBGt1LruZ8+PUZFSFKNJK0A+JkdTaZ6/T2+OBqyZy/kxHiw60FchnhcG6I65JjFLm4oYzXbdPRj7nCqggn9t+463eh4E0k37KizcLf3JfvqrFuNs/hzDL/n13ZB7Szpp5rssq4ZRvRIo8+UWWIbD3BDIuLe2a5tJgGx+o9XzeAOjoV2sKRoYyXDVP83ZN5skGYa0xiEZzHLqkEmrlA/2waTkpeHWwkiiLGAZze02Yiw5PTZoe/qPKnOeRt1zPFq9qedJKwOExK0ZwEY6Rlrm/A7dRyDBSYsDdolwYavYdNAmVoMRY6CriFt9FMjApOrvrsa0pPnkQlTnTlXhi9+Y+0anHynDm/6zVzZJFqOcazIUPU3VxjGHCnIm676fnzShG3jnxYr6n9+UqRADcQhTM1sFdQPRq0udiz+BJ20mHve0R5bXhc1q6cDmu21pm73gfoQXBGH7pyYuLyLVGojNPcFthlBOIAwFDDF8zDTI+0AJqbEl9kLBZmCkjRClweBi2vF+xLYy76MkxUzR1MQLRU6HCn8szaa9lMLKjOuSaLJJxgTmc3wf10iMBGegWE7noebp9Wl0LzHl4aonVS7UOwRp7tU43L9MpGs2BtwPiWii2jrp8BP6N4wgInMtzkgcTRrjv2ACXcIh3hYSFnJwBB7VnFeFUy2E4mS4EnXDHLs7kddwjl2qHxa9SlioKfwpEeunXQL1NNYqHHZJUgmsh0q1+UQKZ3crHM2C4o62THmpCvq8xSecuu5n5ywksMdtNUYzZvnGqVR1b9uUweGv+mquDtKk/Wb0QO9aPm1XHUppldop+y71ZOpRGmlqGQG9gFdlju12cElYqw+GnsFCdO0R3vXw3HnXiDVtiWvO53WreamH2RbyrXmSBp/+W0VrkwUG8PYALOpe BAPdTtix kgb4AVi3tO1aWNEen++BCwgPmtRYoVQOshGgre0B18U4GiQyPIf37yNeGqm14VQmVf704M6UJKhpxiyc0aHPU1N5sTczti0GxgmroA3znWCVWsY84E4xVVkjp2znAAapANIBS+bt4BKuj8UES6W71EJys+ebDj91j8cKRauSVY/fdWexGJhgXO+8q8NyCYGix6bOh+0diZugiSziJozSKTHGBIHgBSopST+zE3ufVdf0VaZqVKPBzjXITUfptqpmSGGC+QLSK93yH6NFV/96K9n32jA== 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: damos->walk_completed is only set, not unset. This can cause next damos_walk() finish earlier than expected. Unset it after all walk_completed is confirmed. Fixes: bf0eaba0ff9c ("mm/damon/core: implement damos_walk()") Signed-off-by: SeongJae Park --- mm/damon/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/damon/core.c b/mm/damon/core.c index 1a4dd644949b..1d9025d14d83 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1489,6 +1489,9 @@ static void damos_walk_complete(struct damon_ctx *ctx, struct damos *s) if (!siter->walk_completed) return; } + damon_for_each_scheme(siter, ctx) + siter->walk_completed = false; + complete(&control->completion); mutex_lock(&ctx->walk_control_lock); ctx->walk_control = NULL; From patchwork Mon Feb 10 18:27:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13968578 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 ABED8C021A1 for ; Mon, 10 Feb 2025 18:27:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5062C280003; Mon, 10 Feb 2025 13:27:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48F88280001; Mon, 10 Feb 2025 13:27:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 32FB2280003; Mon, 10 Feb 2025 13:27:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 12190280001 for ; Mon, 10 Feb 2025 13:27:47 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A9FB4803D5 for ; Mon, 10 Feb 2025 18:27:46 +0000 (UTC) X-FDA: 83104868532.20.856812D Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf06.hostedemail.com (Postfix) with ESMTP id EE6CC18000B for ; Mon, 10 Feb 2025 18:27:44 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=uIgqxIxe; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739212065; a=rsa-sha256; cv=none; b=xpHGYpnWDKL74WBrymbwMRqTp8vgoCxOlHLsxTrim8UgwKxmcnh06htXZ6FZjViIp6Z5/e J2hTfWXJa9UNcpFGFy/KDpziAlvIVKQTjBhn0WitFt9gJw0b3HW12GfRisnZWuwnwrZ3X8 6O99rjdqkjMxfxOY271XUNJW6bYdNVo= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=uIgqxIxe; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1739212065; 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=3hGXyVQDRcwq+JLOVf1x7CrE3ipZtWTtxkBIkOcgWqQ=; b=Oz6vhHW/4oEZqSTV/w+VXQpGoafASoTosFHXpSswlCPFFHI25eQPL5NYsCs0mP78x1EiJB xQTOYU7pbAC0FjHZHRTq5f7bY8JwUYtcsFX1ZGvD1l5bbg8kvXczhqH4KPg/4sorms+8XF awarv6wWwqFaG/fuN+11ATDdfOQhoUw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id C041EA41F8A; Mon, 10 Feb 2025 18:25:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06060C4CEE6; Mon, 10 Feb 2025 18:27:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739212064; bh=hYylxJ/t4NlvulYeuOeW/1CI3orFeM5MsoOWEdxNfxA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uIgqxIxe3bqwoy6asnuOYnlpRVTFpkFH1FOGwJCT42U50Uxe4FJYa81ENcSz0orfd qrVK2HdWWpKbdN+XcTgcvaOOyk8KVHX7tsrprCrpxqfi7kiRim5cOwKrQmUBOzBgcl GkgWyHr2PGOHwjcREDaEXNdSAl8jCNp0niySHC5/nrcUtsUcfeV3kNY9ZnX+G54wCD D4YNB4Hr3jT76xCjb0bpCRR4gYviefC4sCotPJj3n0QlUXmE0ESodqt/6PC+XYsEIC 84cbYyEqNKd16F4+e0TqwdX5ocfz3S8FZXyggY6T3XEyXII3uFNfiqQHf+vXE8Xkrk +GZK1ByHMIHTA== 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 2/3] mm/damon/core: do not call damos_walk_control->walk() if walk is completed Date: Mon, 10 Feb 2025 10:27:35 -0800 Message-Id: <20250210182737.134994-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250210182737.134994-1-sj@kernel.org> References: <20250210182737.134994-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: EE6CC18000B X-Stat-Signature: w4bjw5ize39dy3fa1src5nqe3wug3bhe X-Rspam-User: X-HE-Tag: 1739212064-398453 X-HE-Meta: U2FsdGVkX1/JMRZpryc73XyKvvGqPqVYdk67ALcj0GSizwtVM+t6LOH6LSEjH9EiQyusB2jjyHNjP+xxfo1Gdj6RUMf6XUN8raxBDrJ1BzOWNrNzW9ZZox2QW4D3Qs692q5fH5CiiEJBgfrThcqEpoST4weRyrgEIbEJ0CdvQ1xo7Wn3fKKFYn6olxbD4LKZ4EBjyRmWRAyiiHir2C1GieIY0xYbbWvHZl9EVzKIix+4cNfq5FnX+uDRcJUF2/FC7YvKaIy2kX4T7M7HvfOB2L5kfbpuVkTi4AKA+ygXb7c7RBw8JqF2wOJvN8N8RzHt4I7vpo6oBu5lIspxstE5VKi3aBWOV10suLtCKtH+xBHBUc4yBqG/pjndY1FS8a8/fEvAmdWZXPQEDWWbhuTyqhfDcB+3Wl2lW6UOTtfHohqbJzQjzfp42CTgfp/PxljfG+msbUw8cZ3qpyqcJ8LkerlRispvn45ZFrXxr4DoKN+geDUlryKXxkIsN8gnCP+7g5N7wkT162WoWGdL7inlUNN7DF/P78PwAaoiyMM48fWYzyVoaqbiJwj1zcqFfCCirVudkyYXrYWSSCsEJz8Z68quhtml3qqrmMPkFJB5/sJGcwuW0vB3ycUtAabP8G3cTDJji0O0Riet0MvYaANNW8Lm8dXVyIdRzA3nyDHIy1/SOdgUyZlOIlK5qjFuFGzhmVYJFYOd6UdZYOUXDNgnu5NlFePqRgYkB17G0WRqz0kvkZ8Kz0Zm+7ktvZq+bPPRWcNKi7fx6Qyp2YvwE/WMeTpO8WV+jw/rqGQbySji1JMxb1KhDG1/Hf1XVBO5EIYtAL5KdoZAAg3f/e2ObAVzkf31VunrNUPy4Rf7oxmb1C550vZMeqQGnY8XRf70ahOl8DKuXKPMzLJcs2Fr4gKqEQsEOm2CSV4Xn3xQvx1W4EF1IQhXoVNZPesIk2jYb5Ks8TxdyuMY75keEA+T3GL IDVCVoU+ Yfgscw3UvqcTH1kumnNKXclbjFstcaX+49fIKazWbzmMxhI4R95BjWx8l/tfpTCz3gQYki+aCIkoPlO5LV3hy5ay7OVxt0kQ4ZkdtpBeILabTOtlhqKOF585SNoWQGqAZuI3twTUyt46zbx92x4zCLhpeSRJNAaXWpKFx7/Sy6PqpML8MWNA2goUuRywVg+AMYxE8JPaXoGe0CSXLnnXMSzGQeJirWd3zaxqq0CyUQi+mNvKJhTkZbnQoFQxf/oBtRVh/RaBM5qTw5W+ecdjH5gEh3w== 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: damos_walk() invokes callback functions of schemes until all schemes finishes at least one round of walks. If there are multiple DAMOS schemes having different apply_interval, the callback functions for longer apply interval scheme will be called for more than a round of the walk. The behavior is different from the document (see damos_walk() kernel-doc comment), and not useful. Make the behavior be same to the documented one, by stopping invoking the callback if the walk for the given scheme is completed. Fixes: bf0eaba0ff9c ("mm/damon/core: implement damos_walk()") Signed-off-by: SeongJae Park --- mm/damon/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/damon/core.c b/mm/damon/core.c index 1d9025d14d83..4b865b2558d9 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1453,6 +1453,9 @@ static void damos_walk_call_walk(struct damon_ctx *ctx, struct damon_target *t, { struct damos_walk_control *control; + if (s->walk_completed) + return; + mutex_lock(&ctx->walk_control_lock); control = ctx->walk_control; mutex_unlock(&ctx->walk_control_lock); From patchwork Mon Feb 10 18:27:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13968579 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 348BBC02198 for ; Mon, 10 Feb 2025 18:28:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AF970280004; Mon, 10 Feb 2025 13:28:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AA981280001; Mon, 10 Feb 2025 13:28:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 970D2280004; Mon, 10 Feb 2025 13:28:01 -0500 (EST) 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 717AD280001 for ; Mon, 10 Feb 2025 13:28:01 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D0726A04E3 for ; Mon, 10 Feb 2025 18:27:47 +0000 (UTC) X-FDA: 83104868574.06.52EA25D Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf14.hostedemail.com (Postfix) with ESMTP id 4290C100012 for ; Mon, 10 Feb 2025 18:27:46 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pXPFF+hp; spf=pass (imf14.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1739212066; a=rsa-sha256; cv=none; b=TAMdv+zcR2FbBoxXJO/HixrUS9pudT02SzP+VfS/h4JwrihywtCYBcR4FYmNZv45RYMQIk 9JUs0YdVZPI+BobgK0Rf1xpSz2L2S/xFkDcCuTpuOpddRVomz+O3GNLVBlVfM/GWMBLulW 4ANWy3yGwYUrDAVRWFuKdZ4k6VYAxpQ= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pXPFF+hp; spf=pass (imf14.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1739212066; 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=cIaOGIXxyqGIMifPIaho4RKzgaPaUvd9PnhgkfC5GVM=; b=HQOci4/gkDvdb7MIcT8nT2158RcXaCmn2Jn96qxXNG1GyiTeMuzmCAUTjC8DmAe0vGG/fF E6xqDA6U6HsCcRhZ+JN0dg7gfQOHTxOCgbKKMEiqOGpdRrZM3CI1+T9/Mai/BAW9XbzKov uUAAfVo1HoFGy65fdJeaaitkVF3r994= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 0968AA41FA4; Mon, 10 Feb 2025 18:26:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EA4EC4CED1; Mon, 10 Feb 2025 18:27:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739212065; bh=JOpbnQ6/GYsrBYDCbmgIB9gcRtACbXxjFLu2npIKqq4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pXPFF+hpXIwxEWBO4XNrD2qFwVsSZW7Zd4kKXxF+iazZPOwL66VttoSYIR5m+bhjj 2CB/dhyYSfNQhw3IG3oL+it13d8rYTeT6VeGziXbskumptRBow6qNtP6DOwJb0Dt/U iOuKJJ75fjj9pMAiGoEPVqYycysEGDxrsez42ETAJnDGpkVDlRyE6MQ7Y5TPm1v2p1 dWPo0zSJeLd5FZBKqOV40QVYjdFaC9Dcy6T1KBrHrLcd4bTxcXCbht4hoQ7JKwFI+u tam+aUz/BQ3weJi2T3LTnFTiiVstHMgDYkkcvzHrdaPC7GzElFcb215YtlExmcpQfd FjIs+3adj30QQ== 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 3/3] mm/damon/core: do damos walking in entire regions granularity Date: Mon, 10 Feb 2025 10:27:36 -0800 Message-Id: <20250210182737.134994-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250210182737.134994-1-sj@kernel.org> References: <20250210182737.134994-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: imi5du1q3yd9pzgp6ft6titjbp4gwbbf X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 4290C100012 X-Rspam-User: X-HE-Tag: 1739212066-956377 X-HE-Meta: U2FsdGVkX18Gam3fbxKUCJyNo4PNwoFDrg/8b7pImFE/WzNjtGUzHD3qNjZihLl5IISjbfXWBlHfJau4AMsLQAsjBTuXOaSoBNG0e+GIwkygKVo8PYnBFkgcg3l13P4cpqq+mNw2a7nnXljq7kZUCXkxEmK9CHU+E2zebPGXodp0cCFr6BlpegNuC26SvaONymUlwQVHtPiuR9t22pXgP3C+hj+RgJvP7OCdBKiONboTYOnoIGbJh+PGTA+4rmYuhYnTWc52vCjAEpBEq6ErX0uHV24uqGlD92FQL2cVgQPu8EkBE8H5JF26j/ItpwQTtpArs4wKi6+UwzaVcRHX7oEz4uuResQboO2IcKD3saLgVcj6VtUVPOPuO5EJljaOLW2GG/+A/ZD5UHymSdJm41V2SZMf+6kRe4ItMDOCVOfMF2xDpCzGEXc55iLNaKdT9TWQaoyCaeFgui8yi6NULXw1MxLqqlA+/fqlCmkUcmB1aFYORCf4Aybvnpl23tqhwZHe034nN/iWBdjrYw7t3BW59eiAavInKFj1njZaTZr3n6xZNvgxozgDB6zEBpFqNGXtgmM6F/h05RTzjCe4nwmWBjT505Ky+0NWqyYe5nYNqmCKNbaHrl7vXKrpgB7FkCKI4KIGgvxykP+XrN+ycIDrZiaT/w40RIzBZYOR9k+Q/1CUkavEDNA2UVlhA9OHLkf2RGH5Gl4LfVabrNJ6iGBKC1MuxZkhxyfYD+niUobhSmEVy2e3mp/nKaM+y/BXL5BVXHe5YSvIrjbYqAuDGAzMl8ohUeFjLbg6klj2HR22eYbZt07S9mU8+OsxjXcWPgeA2LOSpkS1OZIql7Zqogtn55RmgcIsaQIoy3gC3gh1EO1uH5/LuUVKCkOEH3EByRCf926rQoWy90LTwzjntxSQd5eXa/3eNqyH9poghDXuUamfMhNA3DfA9eGIbKPfd4qJcP6l7CQ7YjBoEJL xKKn5N1p R8T/B6hHdspMh38LOegDzABBDjoygRLJuuErXfiTVQ+sNrQIAgD8ZKmVj6xlbYSjsuAeijlmgk0/8gulTMbUWSMep1JF2UJAVFaFb1N7tLtZrjPljjPJfw1C9ky/IIMGs3G8bP9iSxzKZBWpMFpihNsgeNVF1iTuzcVK9bZ1fiNb7fYX3QQtFrTm46BaaLfwkNo8Oa3Tc5xxs4N3Wzpi2UC2EgZB8Fj9urcYXtkNkONM63Es= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: damos_walk_control can be installed while DAMOS is walking the regions. This means the walk callback function invocations can be started from a region at the middle of the regions list. This makes it hard to be used reliably. Particularly, DAMOS tried regions update for collecting monitoring results gets problematic results. Increase the walk_control_lock critical section to do walking in entire regions granularity. Fixes: bf0eaba0ff9c ("mm/damon/core: implement damos_walk()") Signed-off-by: SeongJae Park --- mm/damon/core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 4b865b2558d9..c3d9b96b786a 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1456,11 +1456,10 @@ static void damos_walk_call_walk(struct damon_ctx *ctx, struct damon_target *t, if (s->walk_completed) return; - mutex_lock(&ctx->walk_control_lock); control = ctx->walk_control; - mutex_unlock(&ctx->walk_control_lock); if (!control) return; + control->walk_fn(control->data, ctx, t, r, s, sz_filter_passed); } @@ -1480,9 +1479,7 @@ static void damos_walk_complete(struct damon_ctx *ctx, struct damos *s) struct damos *siter; struct damos_walk_control *control; - mutex_lock(&ctx->walk_control_lock); control = ctx->walk_control; - mutex_unlock(&ctx->walk_control_lock); if (!control) return; @@ -1496,9 +1493,7 @@ static void damos_walk_complete(struct damon_ctx *ctx, struct damos *s) siter->walk_completed = false; complete(&control->completion); - mutex_lock(&ctx->walk_control_lock); ctx->walk_control = NULL; - mutex_unlock(&ctx->walk_control_lock); } /* @@ -1845,6 +1840,7 @@ static void kdamond_apply_schemes(struct damon_ctx *c) if (!has_schemes_to_apply) return; + mutex_lock(&c->walk_control_lock); damon_for_each_target(t, c) { damon_for_each_region_safe(r, next_r, t) damon_do_apply_schemes(c, t, r); @@ -1859,6 +1855,7 @@ static void kdamond_apply_schemes(struct damon_ctx *c) c->attrs.aggr_interval) / sample_interval; s->last_applied = NULL; } + mutex_unlock(&c->walk_control_lock); } /*