From patchwork Fri Jun 28 21:03:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Gushchin X-Patchwork-Id: 13716626 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 4BAF3C2BD09 for ; Fri, 28 Jun 2024 21:04:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8450F6B00A3; Fri, 28 Jun 2024 17:03:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 77D906B00A4; Fri, 28 Jun 2024 17:03:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AD0A6B00A5; Fri, 28 Jun 2024 17:03:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 345A46B00A3 for ; Fri, 28 Jun 2024 17:03:59 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id DF7BE14061D for ; Fri, 28 Jun 2024 21:03:58 +0000 (UTC) X-FDA: 82281524556.12.009B756 Received: from out-180.mta1.migadu.com (out-180.mta1.migadu.com [95.215.58.180]) by imf21.hostedemail.com (Postfix) with ESMTP id D3B311C001E for ; Fri, 28 Jun 2024 21:03:56 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=qScH7uId; spf=pass (imf21.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.180 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719608618; 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=Ftjq9d47t8edbds95FzE0JhHDxWshorq1wfRXh80pJE=; b=bjkBoBK9jcosW68cXKzWVDrBh3RpbeRckeKwxhMHVC8K3KPFELvHIfgNucUHHjRIaiSnsX UMNgeUW4t8X6BvX8+ejtB5sFrQ7GQUiUuEi28fuF99nKAOUi4pApEuTWYZ5oVdvlWFF+G4 dpA+kRkrR2dkFY5oCf4GJ3JiINBlblo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719608618; a=rsa-sha256; cv=none; b=OfnVRKvA+aENBVtCQZbLAN1alSMwUEuHTgKREYOpJrznuGA160bJ+0VNiDLaQJis4QnD4Z VPApdeQXNoVTwN7QTOTL7Mj7WmziXaMuinkxvlGYvBnSgNLpVOQbyIu2cr3VNwpsQZ0h2M 4Yh9G0Y9gtlRT55DhCOLWbazL+bJm/w= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=qScH7uId; spf=pass (imf21.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.180 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev X-Envelope-To: akpm@linux-foundation.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1719608635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ftjq9d47t8edbds95FzE0JhHDxWshorq1wfRXh80pJE=; b=qScH7uIdUhSfmN6nvR0ns/TrqGeFu3T4kb4Qb1WEjtGASe1cRWhPo/8WujA5868tRA/ntU Qv1YDCW1CXcDnM7amCXludxngCWUhPkf+uTrkSiIPsSPh4N2G/INANYAWA8vJE9HtcH6rd 7MPWOjrK/oVLHuzKgcF7Z1x+p8nCgHQ= X-Envelope-To: linux-mm@kvack.org X-Envelope-To: linux-kernel@vger.kernel.org X-Envelope-To: hannes@cmpxchg.org X-Envelope-To: mhocko@kernel.org X-Envelope-To: shakeel.butt@linux.dev X-Envelope-To: muchun.song@linux.dev X-Envelope-To: roman.gushchin@linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Roman Gushchin Subject: [PATCH v1 4/9] mm: memcg: gather memcg1-specific fields initialization in memcg1_memcg_init() Date: Fri, 28 Jun 2024 21:03:12 +0000 Message-ID: <20240628210317.272856-5-roman.gushchin@linux.dev> In-Reply-To: <20240628210317.272856-1-roman.gushchin@linux.dev> References: <20240628210317.272856-1-roman.gushchin@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Stat-Signature: iq58p7cu7bb94dmnz8yqde18nwi6h6zs X-Rspamd-Queue-Id: D3B311C001E X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1719608636-657425 X-HE-Meta: U2FsdGVkX19j9SKBGyfbsMWUXweUp/OM91N0vFS41RU5ofrDcDjJrRQWBeVfgwcWuj8GyGpFuQBeSYEfgTQuQrUr0jQj1BprDDI58srjlCsEJoAvSYykXzvU/R3h5K13v/EVmZ0+jnqK7x/7Vwxk7BCDxMFNhPOWFFPb5LvFuAxEzvvMTNfpmq1fjpqzRbblLQifmvRYh/8GB9hpPT8vWu566a1zfADazwLel2wXoS2sKCHqxE+Ubo66k1XhHH5H+3n3bFCGt1khdh8yVum88+dMjus/0eH5BLtcG7IXcpEQ6O6Pc1kQrIRmYIPc0ra9vNJp+SkpUy18U2g4MaPCjUgUniPaVFivjLk5MZAw7N9tGpVnT0VDU/AfZl0jMEU9pHFPosgEXHeLu2dxPYuNd9Q50A9Bm+5KaOF+SEmxFHHE4Tv1+8O7JMsrX1l849I1TbCN8wwHN6XKtzS2j9hOmqppHgUaH7m1OhgVgzkiYEKvbgNf5C9qehBaJn/VvjOah5GhMgcd9lucc2d+2i8tKTJrZGQsjFGh2jJr1537CDUJvUwZQLc8madZY0wyyR21Fm8oE1h6YRz965Pm+vafuvBiEyVnHypUq6h0Q4XW8WWeSOx+pBdyUp6lQhgWroXlpzFXZplRmeqmGN4qMQvAW9Jdyd4vuODchYxssz2TU6Sk+xw8iJohd5EGHm3M/S4NM9w4dv2aTUIuKgDtNi/Mb97VhhTPEyk6HLCx9QAfBotzu/7wfF9PdlLkN19YBEohL5Sz9df59zF0VLxmYRUl1ZTJuzbx8f72ZhRFmPKStQNvIAdR1UxEOYsnlpej57SuBaCoIY9tOAwUemqQ2ClioWLGQlROzx5DDSWw0GYUz4cF3dbgFXHIZnj1p4jRtYAGBICYfK4/ul8YOLWVF8CHUFm7ld1TxWzzFH5Cj4EOoyzP4A6wrRcCJhKQGnOEVvSCublttsvxzScewtWpW7a 1uDJYs0O rxznDXSNxsPedEB85ArENee3hpCTcq2+3i5h+pao5LqbF0QqCrB9bZPjOPVqvf7pmOZXjz/bhCVoHgGqQ9iJTHyP2JO8GxNdgshbG+s4WjxhMryt1e6WpeTIBlHW71v071QkDzq/6NqAtRt0W8lmAdhABzQSlEBqNhpvB 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: Gather all memcg1-specific struct mem_cgroup's members initialization in a new memcg1_memcg_init() function, defined in mm/memcontrol-v1.c. Obviously, if CONFIG_MEMCG_V1 is not set, there is no need to initialize these fields, so the function becomes trivial. Signed-off-by: Roman Gushchin Acked-by: Shakeel Butt --- mm/memcontrol-v1.c | 9 +++++++++ mm/memcontrol-v1.h | 2 ++ mm/memcontrol.c | 6 +----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index c9b4c3e4797d..5fa48a45e34b 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1961,6 +1961,15 @@ static ssize_t memcg_write_event_control(struct kernfs_open_file *of, return ret; } +void memcg1_memcg_init(struct mem_cgroup *memcg) +{ + INIT_LIST_HEAD(&memcg->oom_notify); + mutex_init(&memcg->thresholds_lock); + spin_lock_init(&memcg->move_lock); + INIT_LIST_HEAD(&memcg->event_list); + spin_lock_init(&memcg->event_list_lock); +} + void memcg1_css_offline(struct mem_cgroup *memcg) { struct mem_cgroup_event *event, *tmp; diff --git a/mm/memcontrol-v1.h b/mm/memcontrol-v1.h index c8e5119223bb..6545fa1b7d09 100644 --- a/mm/memcontrol-v1.h +++ b/mm/memcontrol-v1.h @@ -76,6 +76,7 @@ int memory_stat_show(struct seq_file *m, void *v); /* Cgroup v1-specific declarations */ #ifdef CONFIG_MEMCG_V1 +void memcg1_memcg_init(struct mem_cgroup *memcg); void memcg1_remove_from_trees(struct mem_cgroup *memcg); static inline void memcg1_soft_limit_reset(struct mem_cgroup *memcg) @@ -124,6 +125,7 @@ extern struct cftype mem_cgroup_legacy_files[]; #else /* CONFIG_MEMCG_V1 */ +static inline void memcg1_memcg_init(struct mem_cgroup *memcg) {} static inline void memcg1_remove_from_trees(struct mem_cgroup *memcg) {} static inline void memcg1_soft_limit_reset(struct mem_cgroup *memcg) {} static inline bool memcg1_wait_acct_move(struct mem_cgroup *memcg) { return false; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index b69abd327549..e78ed54d46d2 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3624,13 +3624,9 @@ static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent) goto fail; INIT_WORK(&memcg->high_work, high_work_func); - INIT_LIST_HEAD(&memcg->oom_notify); - mutex_init(&memcg->thresholds_lock); - spin_lock_init(&memcg->move_lock); vmpressure_init(&memcg->vmpressure); - INIT_LIST_HEAD(&memcg->event_list); - spin_lock_init(&memcg->event_list_lock); memcg->socket_pressure = jiffies; + memcg1_memcg_init(memcg); #ifdef CONFIG_MEMCG_KMEM memcg->kmemcg_id = -1; INIT_LIST_HEAD(&memcg->objcg_list);