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 D3402C369B2 for ; Thu, 17 Apr 2025 14:48:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 94A25280099; Thu, 17 Apr 2025 10:48:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D3E6280088; Thu, 17 Apr 2025 10:48:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7720D280099; Thu, 17 Apr 2025 10:48:42 -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 587CD280088 for ; Thu, 17 Apr 2025 10:48:42 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D9132BC521 for ; Thu, 17 Apr 2025 14:48:42 +0000 (UTC) X-FDA: 83343817284.25.F4F20EA Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by imf14.hostedemail.com (Postfix) with ESMTP id BC8C0100003 for ; Thu, 17 Apr 2025 14:48:40 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=CKQZzhoU; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf14.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.51 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744901321; a=rsa-sha256; cv=none; b=d4Bc11i23wg1qjSMJfq9EJz7e/SDy8aEKehTQcN7qWtCfVTooLDvP6Z2QyVPeraqKtg6AQ lmgxfFzwcgGkwfU+q0DpWjbb7qYJp6dO7DJsYiLjPIcLnzjM3WS449XLz1/vq7/lM1OCj3 u14yTI54EgYqfBTT/MfwsSdLwCgsH/w= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=CKQZzhoU; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf14.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.51 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744901321; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=72y1EmznVSmoY7TT1dLdPEUbLZhpUALLN+CNBenUUDE=; b=0mXl0adVgF0EqMbmesBLdfTsTWOGlbWiHaLAVQGLxg1IEWjVwyccQ5Rl4R5xtC2Kf+JdfG JD33oyDc25WDXztabRF1P7bExwO+rCcynQ/5XG7g5S1re5pqYgxAOyMbdBpj8okz3qBInB tLjyMEddoJ8nHLGzqHRzYpZD7VZp7g4= Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6e8f6970326so8035896d6.0 for ; Thu, 17 Apr 2025 07:48:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1744901320; x=1745506120; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=72y1EmznVSmoY7TT1dLdPEUbLZhpUALLN+CNBenUUDE=; b=CKQZzhoUQJmpJ1A8xKAK1m39iptaGjWECaA6xHPuwiaWCOOSmwwzJN872/sU3TYkmK 1O9ioClkrvNr5SHsv+O36Y0FCtQJQWYEOWj5l2Cid828ujOOS/AsF4Zpb3p9bzNliaKA WOHaPi29O6YdX/NiRQ2Q2Cj2mdN6pQVqYdzhqSqlWdJe8QHqvHaAN40WmZIzAQ5XU/jk BoxOJ2gAgRkqLzOkHAHnpsHF7r5OZmgRXEH5X1G7Jl27rW6J2MAf549R/8aqPWcDQGyi V8FQdawwXjXcVxqQHqRTjhs7VRsDf1L1qKiWvnfq8BaN0eHEwU0Vq3nnT5ql3oAi7+rY vTXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744901320; x=1745506120; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=72y1EmznVSmoY7TT1dLdPEUbLZhpUALLN+CNBenUUDE=; b=FJGbGpS+vIE84Aw7E7GAStpjG3krF99h0SPt4YC4DiKTNQkFW1rwsypYGDDL2pKrUg D3CDheqfKj9LTkxcy5V0ez1yfGXBGDgO9JGNsc21seONJzLcfx8YxElhs+4DiG7KENZ9 luShV7q9cnUpZiGV/0vt6WlFlxZXHPhYwpWyeOrxh7W8HQCZfR52sJgtJ/rvlZNwEB7i csDAkUYN+FkFLVTx2Jb+W4TeL6lp5SVf7RDTPiwexcWRUDMbxYnVM3x1FvYNS5KX8DmE 4m6L6wyFnJ3zPC/Yd31kA7BVY9kyHiSgJlrrJGcfHTJv940hyEFv86LIq5JiNksK8nQ6 KalA== X-Forwarded-Encrypted: i=1; AJvYcCVEY5jEVPFkCHKNZh26J2j5/OOm4/vl+D7Buh3AJacrf98K8IJXa8t+maDIa0Ly5eZ9+aumP0StiQ==@kvack.org X-Gm-Message-State: AOJu0YzO3nSStlcQm/u3fLtNSpSkcjuzH20gC8ZT0oo8XHd9JcV1bD4h 70i0ljOIeI69ZNKLQyHtkMQFCV/1FBjTbL/J6qWEuXLp1/dphZc1zlSCbUQsq1E= X-Gm-Gg: ASbGncuWquK3iAJ1s0y4nk4qTVJ55oTtkexf8V/dQMMHeab31O0QW8HgaDHisqYqaAg ZaLyfhl92exQsGRjUm3m9k4V+IDftppILs/Y3DCsRBRTo8XHkdvmgfagtJjV9hVZu/kLhqO/FDZ 6HqzzrjggzN1BTeP8Rnkk0L6Qw2SkQjPHBAL8zp1aexkIymFKrONW0Std5DAUjw90DfMmsMMtnS P1tSIGkLHMXUPGCYFyAz2P3tEJdZYd19iOihWMqPdPjsjR4MIXuR9faNLb2qqKlwb7zt9G5RvWd vGTTq29b8JnWIscmsL6in36PQg87/lkkxlAMLRg= X-Google-Smtp-Source: AGHT+IGDYG8scGbGiGtdjWD5Tl+oF+abCIBc/cfLvyS8vBIxcfDBykRawx8ajQXIXSc3ZbLJsuLZ1g== X-Received: by 2002:a0c:c589:0:b0:6f2:c181:19db with SMTP id 6a1803df08f44-6f2c1811d13mr8653966d6.43.1744901319739; Thu, 17 Apr 2025 07:48:39 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:365a:60ff:fe62:ff29]) by smtp.gmail.com with UTF8SMTPSA id 6a1803df08f44-6f2a4b60a2fsm38477396d6.120.2025.04.17.07.48.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Apr 2025 07:48:39 -0700 (PDT) Date: Thu, 17 Apr 2025 10:48:35 -0400 From: Johannes Weiner To: Muchun Song Cc: mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, akpm@linux-foundation.org, david@fromorbit.com, zhengqi.arch@bytedance.com, yosry.ahmed@linux.dev, nphamcs@gmail.com, chengming.zhou@linux.dev, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com Subject: Re: [PATCH RFC 02/28] mm: memcontrol: use folio_memcg_charged() to avoid potential rcu lock holding Message-ID: <20250417144835.GE780688@cmpxchg.org> References: <20250415024532.26632-1-songmuchun@bytedance.com> <20250415024532.26632-3-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250415024532.26632-3-songmuchun@bytedance.com> X-Rspamd-Queue-Id: BC8C0100003 X-Stat-Signature: bjbmokqms31aurdhppbojpqkg536eonw X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1744901320-963052 X-HE-Meta: U2FsdGVkX18W3+zXV4Kt50DSQ/d8egIjCHaq7lZjv3KpH7g9s2tqUlSAlexYw4t0M3QoehJPWi5hHy476k7ufq/pmpRERvLDyQR5zxlV9eE6IzqhuSsFR8o8zNu7WZSaS41epPh/JIRrHeXEKgsEHvDjpYVTgPEvr0+8NVxIyfNHzSsS+S2H8iruHkpNmq6rGyMknqGk+TTqaXv+dFYMOxMgL7m59bUXyTWFsVHqRa6LSORjNdZw16yxHwsdxguA75m5WiHmRSmdTH2DMlBM696Fb2FStEWhQfXjkhdyRVHjmZ44M7BZXprrd3ymBuD3e6CCWEfSz2azvl+3LOQfBjAWJCoSnkPXzaB5ztR2/+wm/27aBw32tMIVoQYGFf/hCc/R1VvswZX5M4cr/98B6U29EQylDk2ZAHtUj94EG3DklY0jeOAKGi8fJHJlN3YxnpdvtjzC2CFXgvceYGUny+nmHwXoNROil++Nkhwmh7VWtjoJMBFLTC2PrkGYsbKI4tVJVM4WmZe36i/r2It8jG+NodmyMeKvZ4WPKXTMmmK6sAudON1GJdX91PLEL6/+CASyLsnpnMIBUFcUXVhD0/P8PW5evKA5Pxzm0pDoQfvBxZ2GSZ+/5X5Pu+xxC/pW2q5ZEL8bGtnDcFadmhMUvf4LGzIRxZvf0SEDOmiDGdx1lFiUTGVQIO8YLP8w47esZXFmRDg5nyEXvEvz40WcIR4rQ266AmqlmrMinVQQdyERzpyiI9Ql6GVqf/c78OA9nD8FmgouYkuUC9l3MhYzcVReF42RR4GmyN18a/PjP7t67EVCmpQqGA/hlqnCTRf0JLEJb5/pbd51Vd2YFGHvMmgYx7Art6XxElsSbDrIylmYfGwECXScHiLjyzxHQdhJMG4iT61QO0Vc0EghuyZ9f4JTOf7YTDfDaK0EIp4aLKdprP6r7PHVZQwozo6DHYfEwApGg3rJa4sEPOiOsXV c5YXzrl1 WWiAeBu6pZ71LrlhoTxGgPjC6c5k9SXyQMJ4gfEwoMM9XAo9kRCepalDyJvvF0D8BS/WQryierwINaDPzdXUMfP8km2e4KBITyZZHoOsba/clAn8NQXy2sy4sJZAWS6djAz0gjeTLdKDqx77fc8dMCr4v37T7NgcagvG2KzUJJpT5bD3n1FUOVcniZvYhsgJLdlMNSKFf6dXqCWlzi3F8XiDRmov8Vveq+YK0Ms3tL6w7cfMo2VmjnVqqEtgXbxs4mz7WVTaToUWu5fh6ZYrGYHwkVjTOLvN71pU2jjpIxkz/ICRmDto+UJ9kdx1yt9HDmgmIjQw9ZiAlNHu9YU77MnqCKHGRjwIUIqjzFGzkF8a+R0Ufzla4fDCwI4CphjNcOB+GVcPXzg6h+A0TpO7eisTtB2lzMIB6HKE9M9Gmo1IjAw9Uyfm87XbSD0hG0iWauSK12rYhDGq+LQSWQ0JpzR9PxyRafm9c++dQa3fm12aGoC42E+0h5H6eiiCt1Pm1Yf4LqNqEOQQ9XoZIFXxJQTNq/SsQfd9rdgEd 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: On Tue, Apr 15, 2025 at 10:45:06AM +0800, Muchun Song wrote: > If a folio isn't charged to the memory cgroup, holding an rcu read lock > is needless. Users only want to know its charge status, so use > folio_memcg_charged() here. > > Signed-off-by: Muchun Song > --- > mm/memcontrol.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 61488e45cab2..0fc76d50bc23 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -797,20 +797,17 @@ void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, > void __lruvec_stat_mod_folio(struct folio *folio, enum node_stat_item idx, > int val) > { > - struct mem_cgroup *memcg; > pg_data_t *pgdat = folio_pgdat(folio); > struct lruvec *lruvec; > > - rcu_read_lock(); > - memcg = folio_memcg(folio); > - /* Untracked pages have no memcg, no lruvec. Update only the node */ > - if (!memcg) { > - rcu_read_unlock(); > + if (!folio_memcg_charged(folio)) { > + /* Untracked pages have no memcg, no lruvec. Update only the node */ > __mod_node_page_state(pgdat, idx, val); > return; > } > > - lruvec = mem_cgroup_lruvec(memcg, pgdat); > + rcu_read_lock(); > + lruvec = mem_cgroup_lruvec(folio_memcg(folio), pgdat); > __mod_lruvec_state(lruvec, idx, val); > rcu_read_unlock(); Hm, but untracked pages are the rare exception. It would seem better for that case to take the rcu_read_lock() unnecessarily, than it is to look up folio->memcg_data twice in the fast path?