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 86766C3DA49 for ; Tue, 16 Jul 2024 08:16:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EC6096B0093; Tue, 16 Jul 2024 04:16:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E75916B0095; Tue, 16 Jul 2024 04:16:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3D886B0096; Tue, 16 Jul 2024 04:16:13 -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 B78866B0093 for ; Tue, 16 Jul 2024 04:16:13 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 514F71A0459 for ; Tue, 16 Jul 2024 08:16:13 +0000 (UTC) X-FDA: 82344908226.26.F47CDDF Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by imf28.hostedemail.com (Postfix) with ESMTP id 79BFDC0019 for ; Tue, 16 Jul 2024 08:16:10 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MrXDBBRG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721117727; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=fj5XfQZG9NJIoCQBVdeg30DaGTKFdOEFNKvIvXjLS3w=; b=2h4YgaVvBsJIgfukYh3pFgv87Ju+O/0w50SHXK6rXbdLXm+YdK1kdQhgYDHV+R5/C3M5WG iSfa8h2f8iVqsgb4iznpQDvZE/rNcleuMIN1YoBvfVWamsE00h6NlWoEjQmlE+gGeXHItB 3iQa1hToLClmFhWYGggmhkUXPYN5Hv8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721117727; a=rsa-sha256; cv=none; b=iOGcAgo/VPS/Ycnouov4OD0ISNfI7EJsY2xfF0K2TQ5zLUmWMU8qwXgaiD21r5RzwjfybX 1TH93fAXVDK08sJelyUzI/VGMhA4/jXTiw/k6Oojvr7rAlTIYQAVQ8SOpOaIpgakhUQECo LGrrcwV990XN5P/W2/TGWfWXDH+eZ9Y= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MrXDBBRG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2eea7e2b0e6so69926351fa.3 for ; Tue, 16 Jul 2024 01:16:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721117769; x=1721722569; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=fj5XfQZG9NJIoCQBVdeg30DaGTKFdOEFNKvIvXjLS3w=; b=MrXDBBRGB/8XDKlQGeVGBhT7FbarxcRs0EVVRhToz4jddhCZD1ycLWTz09Kj3k7c56 31W2HyWNG87n12sqGx1lQDutdFN/gJXRw1r08RZ1yidLNVVaVkHBrxNJCu5zeaahxlVx z5VQK7SbDShipNSK3LQAxwlxRKw+O951O6mQkt9WX1qciMn7X/Bu2wJISHSpkqbbQdsD S++HobZ8df1vhfjaz7XxeB3dLrBPDUBIGGmxFtz63C7xb6tDryCi5gWu4o4GRhHeHXHg QffC228qr68M+yZQJkpIEZhh4kn+KLsvkvOZxPlmj6l47CC7Q50ns2KEw1gElm3X1hYA lD2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721117769; x=1721722569; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fj5XfQZG9NJIoCQBVdeg30DaGTKFdOEFNKvIvXjLS3w=; b=b15M/6oA7wBDQnw8p4jtexmnJAJ6eUYQC2mqKM8dhnWoh3yR2IhvjG6TAxAa+IlW9l 1ZOY+ARIe4qogGy/v8ZHWb6aMJ+shb+NnE+iaCkXzsQXsfODbOfNylhZEtM6yYd7nv8T W00Sy5n6LPBXJvB1iVPvelEYEtZUaWMwFp2OnZfKhJL3w6rJqtAqyeheal4SXG6dhrBQ s80iSiXtSmZHkoNoUW8RHZdTc6QYKK7DBvDD6HV9gFX03GmzVSIjdR/zY5zPEcTp3Woh 3Ax0xBwmbYDu/WumJ7UB7bnL6b36Z4eKaxKvwWOOPR3OnO9jHPubV+TN5+yO1LSBUmWe /rLw== X-Forwarded-Encrypted: i=1; AJvYcCWEpDGuFUyu39OGomCovPHOvTzzuMmsv5zPj7QqLSsfsnygUTmIN1G9Jjr/qQYx/MVN3iCNhZeabDsYMkxomOEZnyA= X-Gm-Message-State: AOJu0YwGs5P4OafFYfChDorATS1QSm50f0CsCxwssmVi6lCExTwCD3vQ 47bfnQ+QrBz/tb8K33HXnxeseSV6GLp4xhTEo0ycnfFrQiYhfyh/S4yuddFeP9prSxzql5YD6HC OP4/UX/9IYPm7iUGVZhsiZrw6SVQ= X-Google-Smtp-Source: AGHT+IFj4TGxZKC6TJ1xY9xgojk4B/TcjasFFXqfRjC+KGBgS6+ZWdT/lT6ZYsTyhpwjbCUP8r+uvFCbp3ZEo5oSAXo= X-Received: by 2002:a2e:a0cd:0:b0:2ee:8ddc:76ae with SMTP id 38308e7fff4ca-2eef419f117mr10001581fa.26.1721117768511; Tue, 16 Jul 2024 01:16:08 -0700 (PDT) MIME-Version: 1.0 References: <20240624175313.47329-1-ryncsn@gmail.com> <20240624175313.47329-5-ryncsn@gmail.com> <66591895-356b-48bf-b4ac-5cec5c29ae8d@linux.dev> In-Reply-To: <66591895-356b-48bf-b4ac-5cec5c29ae8d@linux.dev> From: Kairui Song Date: Tue, 16 Jul 2024 16:15:52 +0800 Message-ID: Subject: Re: [PATCH 4/7] mm/list_lru: code clean up for reparenting To: Muchun Song Cc: Andrew Morton , Matthew Wilcox , Johannes Weiner , Roman Gushchin , Waiman Long , Shakeel Butt , Nhat Pham , Michal Hocko , Chengming Zhou , Qi Zheng , Chris Li , Yosry Ahmed , "Huang, Ying" , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 79BFDC0019 X-Stat-Signature: w88yz3cuzqczecrqgutg7bmyzoxr3ztf X-Rspam-User: X-HE-Tag: 1721117770-670921 X-HE-Meta: U2FsdGVkX1+w48Q9AchEEglEh3fdY3Ee6Kzf9+P2CihqUJMxsnUguByUlZZ6jI4EnAxQQpaMwDSUsj8ZpESw+3PVp6KHpNhh+WB4vhmCUmfLEixJuR+1t9iehpKEnaA+VZH7erg9cKGuKIIY5p2t8nUbLV6rJtaf6f/Yfg8S4U37Dc6hVYCuw1cw5e/oWOpZyRXZldxHJ73B9pJ8WpITgDq18XRybSzl/vu1U6zC0QUzOR3y6taDHoB+QDqtdeB99QEP28T+TQNW4ZMqcGn+SuWHQ2fSDYtPPcSYbVlVRVCPaQX1WiCubyy+PrGPF5HgtVxs7fPjGzg3/o4ahQIrXqpw0hHEWOa5Mtj0txv84bZQH0DbzJluHdgOe9aEbk+XVrJiW22n/OdpyBxv8LSQmlURT9LUmzDGFLeYq3U6wGm0xRp+byqdVdpsFGSobEZ3+OVnA5CAEKiGErSuLCc6bwoSkyMcVTbkmFotRM7hYKIc5i/m+gG4i1mP7WG+cMpONy7SAqI9PKcZr+UW6dyV0mu/nfOXVWc5A4/EJp60bVwl8gmYLnWar2DM5FXurjZ/CP8pvy8hz/iwey3y50SQLZf9scSeVeJH9tpqDx7WVz/IWqJJ/uTOqP3NmzIMjr/3GWxEzMeTQS5ZAkhTdwRr4MAHcnS/LccvkaYzM5jIUnyr/WKJ/RJTRSSe7yedIhIx7fZrHWpxfYGOTvxQLfMYyV6IOi7IuYQu8ydbaDukpW3SFPjKMz7lwHV+YJSQyVckgu7APSqyBo7xLGWpBOMVbEgu8CKwuTnEX3QqKsZb+3W7Mw+v8TZUjhjWKBhZV0pHVz6wHfBsxE4mhYH7es2sUGBHY2WBrmaxXQz9+oaM2T95pygI/Iz1Ln1GK8lsuQcfiLZy9uqI9IbUb3WZYfkb3kbvHSfkQsLrGQWsjngbi1fl11zsokWp1nhRyc3XI+pHb6P0ZgStn1D0cKQUuy7 WEMd12vj 3Bm/rC7KGSXDryASlyCQ7ihvODfdBlQ9FhPrr9BKny9uE6Ob6bzjDNPBJp/Xfz1Sj9tVXO84X1jvcfTlif8FdaBsFpbb1cUUEL8WJJVtb7rVns/TozGh9zQMKdBHVhqOYeh51dzIvoUMo81r/ZwlOn/NqqegXaU02Qrtv8MJXtE5AI1CX1LI/pOrqtVd/MmbBwsRH4hN7frB+HekFcXLKjo4xroyMUOVkN/dRku7yh54F1YLCzkk/A3tUKpvpfZQdsLVpQ7j1bfYPYpGpD46feqjfc26OteQAhgpoIWPqj6bFLX0krKflB7Lh0KA4UJ9ciO0Xds0gxMz8+/1ojA50Kn7+Mqhk/exHuEumdo0FKGzd7fuZA7FSxzcjsQTEDDehhaBLPTmbIXJ6jwTkFXtPjukjjxg8C04iWTXbrHBWpI/ZOdWtjLjRkkiDvg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jul 15, 2024 at 5:12=E2=80=AFPM Muchun Song = wrote: > On 2024/6/25 01:53, Kairui Song wrote: > > From: Kairui Song > > > > No feature change, just change of code structure and fix comment. > > > > The list lrus are not empty until memcg_reparent_list_lru_node() calls > > are all done, so the comments in memcg_offline_kmem were slightly > > inaccurate. > > > > Signed-off-by: Kairui Song > > --- > > mm/list_lru.c | 39 +++++++++++++++++---------------------- > > mm/memcontrol.c | 7 ------- > > 2 files changed, 17 insertions(+), 29 deletions(-) > > > > diff --git a/mm/list_lru.c b/mm/list_lru.c > > index 9d9ec8661354..4c619857e916 100644 > > --- a/mm/list_lru.c > > +++ b/mm/list_lru.c > > @@ -405,35 +405,16 @@ static void memcg_reparent_list_lru_node(struct l= ist_lru *lru, int nid, > > spin_unlock_irq(&nlru->lock); > > } > > > > -static void memcg_reparent_list_lru(struct list_lru *lru, > > - int src_idx, struct mem_cgroup *dst_m= emcg) > > -{ > > - int i; > > - > > - for_each_node(i) > > - memcg_reparent_list_lru_node(lru, i, src_idx, dst_memcg); > > - > > - memcg_list_lru_free(lru, src_idx); > > -} > > - > > void memcg_reparent_list_lrus(struct mem_cgroup *memcg, struct mem_cg= roup *parent) > > { > > struct cgroup_subsys_state *css; > > struct list_lru *lru; > > - int src_idx =3D memcg->kmemcg_id; > > + int src_idx =3D memcg->kmemcg_id, i; > > > > /* > > * Change kmemcg_id of this cgroup and all its descendants to the > > * parent's id, and then move all entries from this cgroup's list= _lrus > > * to ones of the parent. > > - * > > - * After we have finished, all list_lrus corresponding to this cg= roup > > - * are guaranteed to remain empty. So we can safely free this cgr= oup's > > - * list lrus in memcg_list_lru_free(). > > - * > > - * Changing ->kmemcg_id to the parent can prevent memcg_list_lru_= alloc() > > - * from allocating list lrus for this cgroup after memcg_list_lru= _free() > > - * call. > > */ > > rcu_read_lock(); > > css_for_each_descendant_pre(css, &memcg->css) { > > @@ -444,9 +425,23 @@ void memcg_reparent_list_lrus(struct mem_cgroup *m= emcg, struct mem_cgroup *paren > > } > > rcu_read_unlock(); > > > > + /* > > + * With kmemcg_id set to parent, holding the lru lock below can > > The word of "below" confuses me a bit. "lru lock below" refers to 1) > "list_lrus_mutex" > or the 2) lock in "struct list_lru_node"? > > I think it is 2), right? Yes, that's 2). > The chnges LGTM. > > Reviewed-by: Muchun Song Thanks, I can make the comments more concrete in the next version.