From patchwork Thu Feb 27 01:57:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13993526 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 1E1E9C19776 for ; Thu, 27 Feb 2025 01:58:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2F2B280002; Wed, 26 Feb 2025 20:58:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DBA0A280001; Wed, 26 Feb 2025 20:58:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD028280002; Wed, 26 Feb 2025 20:58:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7E9C1280001 for ; Wed, 26 Feb 2025 20:58:08 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 032111C9E83 for ; Thu, 27 Feb 2025 01:58:07 +0000 (UTC) X-FDA: 83164064256.16.9213630 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf04.hostedemail.com (Postfix) with ESMTP id 69C8140002 for ; Thu, 27 Feb 2025 01:58:06 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Qdx3MU9a; spf=pass (imf04.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740621486; a=rsa-sha256; cv=none; b=MqOqmp1sC3545fWjiYES4cL/1J3ivCPd5xejBBFZhEXRcxiRhbMB1xU1w37r5I3F5oLBbF 7Boq9LK2r2k6l1I/vcIvayYngXoHW8U8eqg9eHXXGoD9LwfGdcJbEpzWe7GcgU22CgU0ty Gw62lLSDJ6GcK1DlwshSuRLdT1hOW/U= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Qdx3MU9a; spf=pass (imf04.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=1740621486; 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=OjJNJiaOdsrix+Ltk4nxtfRB6eMOp1RX+pRno+zzvwk=; b=iwUo827Y2UT7VHZ0UB3lOo6oQtOJ2y3q6F8T7TCgPrj8I5TME2ZwKnPC1uOh8EvT/UalZR ZmWk50yx9sSsNivX5QHocHDuDMhGN59EMOjDURJx72VGPdIFC5Rq+r+ITuU84hkJOk1Aca V0yc0ZeBMu7/+4jpczFfhru6nudAM1s= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id D3B2D5C762B; Thu, 27 Feb 2025 01:57:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D125C4CEED; Thu, 27 Feb 2025 01:58:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740621485; bh=OY2pEDCzd2TBvXbxWW+MmytpNlwQ/v7G6etRGptJ9HI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qdx3MU9aQ+jtJ3yV54gUkfbBPGrqz/FdGkQ5upGuZlS2dfhhuVbV3LJb5lPg2TI9d tlpr0IlquKAzhEa3FPyi5IUCsODvs40GI9mOzW3gQjQWU8TwYRKSxSx7LPfiz6VHIz a5ok4PeVaVKD+SpVl4aBWh9CaXqHoeozY9FyxbDusP6KnDB5p+UMwQX436msGyG5Io 4DLw+kZ7PUwkiRftIC/cFoE46dhnLc997RWk6XfyMUHZTGfhW+sLMKyxrAuF0vx1IE feM8bPwk59P5sSwIXepLSJ7cKH2is5XnwK45Wav8Ig79KwPj2LzANJNq3nJEExvYwV mC8/gsT/34R8g== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 4/9] mm/damon/core: put ops-handled filters to damos->ops_filters Date: Wed, 26 Feb 2025 17:57:49 -0800 Message-Id: <20250227015754.38789-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250227015754.38789-1-sj@kernel.org> References: <20250227015754.38789-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: gkk1pazhh8q6ps64cdnanzyczsuycxzb X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 69C8140002 X-Rspam-User: X-HE-Tag: 1740621486-565895 X-HE-Meta: U2FsdGVkX185KV6kEFjpMhdDuiV+VUQeRPsF1C4YIOQfoN+/63JmgUDxnsXD+V2avK0B6OyUqChXzMJowTByjpTusPw4exovVmob2GAQyecYzUn4T/dbEOuQJIg1fEHA/yXodLYc4zjl+C4aBqEnhedXly9lm9yjpJb4g7thRP0h95fQL8t6u17haq30PKb3A0keqLta1CPnB03fRwOPkLMiG3PwXTLoAJPawipoE3167rFX7+VYN0ZyUKJYxqqBRLwRo6GUVK0bHxIHlubo5Ass+DQDI5lrtX+52rvXteJ3DcQrdeHxMQ4Eymuf3Lm9KrYMRg5Ty4Jg1IT8lDoQz2BViJO6iPP9sTEu80K9wucwKl7Xl5UcTet5s6ayNLTkQMgXEV1vHI1zDev2VZscBCSC1UwZxk1Kq1QHukePTF0y6XPnRMiuuXZvwvmNV+dMhXvCIOCiFDml1TGqcBKyj17kh+F9OxTqLOo7ArAYEZYmLwfZ7N/GaOce247QbAIjEE1ZjYh35IMHmx8rF0SSJ7fXD9kabMRGgR5Ode8Karv+wZv2OEm8kCbCYoX0CFmI6GkxcrVwgvJ/vmAZLMXk7CmbSmNx77V5VYiyeGYRSdxdQv6LWXL1ZgidHGoWjrmyE7VfDFxsYhEklh7kBCviEilu5U0qg8vKAyMTaO4QQniBj59znyIFz3gFPwxZixwrduaR8Gtp6XBir/bdJVxARDyvepx5nAVQCTcZpeLUlfmXF3V3CJ3z7WEsJvJ+oDja7chkru6y4nZRoMpaDCaBO/9CAgh/0LdgzQMNelP71x/AXX4gawpWrGVdsMm7r/5/cVxy/YBYMRQlOArilu3ZoOIWs546SubvlBXqZ7dzq3Jsv/IUPHrxCBGfi9kavJxLqUSIDzyIn0vqvx5LmelOamdjx+zjwjeCrBvWMzGKz8K/wLvlv/vemAOnFPbrdev3fpVBfiR2yVaBYD69dAE KQQXjKWp 8WpDtLpTifmLSagNKB0Gww5YB511V1MUv7ocdh+RX4887psOxnwYd1MWaXzNBNT4lawHl16rhJAlVsIMXYVO3q5KH5ef1b6UsBszR9zyapElhRfKJOBd2DLXjgvW/nqKoQzBuZIysk4J6sp6sHrYpm6toMqkcAOsAKUATbzgestpThyvbtVCDThERBxCrIaU3NQDX9h7Q3hoiVcDT7dd+r2bJUdTnNHp2DhtLrXYTKahXEZi8SoWHnmQSPWMK8YCEuT4NCgfLsWdHOioQVdCbAKu1iQ== 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->ops_filters has introduced to be used for all operations layer handled filters. But DAMON kernel API callers can put any type of DAMOS filters to any of damos->filters and damos->ops_filters. DAMON user-space ABI users have no way to use ->ops_filters at all. Update damos_add_filter(), which should be used by API callers to install DAMOS filters, to given filters to ->filters and ->ops_filters depending on their handling layer. The change forces both API callers and ABI users to use proper lists since ABI users use the API internally. Signed-off-by: SeongJae Park --- mm/damon/core.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index ffdd84ff6fa5..78126a5145fd 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -281,9 +281,24 @@ struct damos_filter *damos_new_filter(enum damos_filter_type type, return filter; } +static bool damos_filter_for_ops(enum damos_filter_type type) +{ + switch (type) { + case DAMOS_FILTER_TYPE_ADDR: + case DAMOS_FILTER_TYPE_TARGET: + return false; + default: + break; + } + return true; +} + void damos_add_filter(struct damos *s, struct damos_filter *f) { - list_add_tail(&f->list, &s->filters); + if (damos_filter_for_ops(f->type)) + list_add_tail(&f->list, &s->ops_filters); + else + list_add_tail(&f->list, &s->filters); } static void damos_del_filter(struct damos_filter *f)