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 71699C3ABAA for ; Fri, 2 May 2025 18:29:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CDC696B0089; Fri, 2 May 2025 14:29:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C8B476B008A; Fri, 2 May 2025 14:29:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B53436B008C; Fri, 2 May 2025 14:29:30 -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 971C36B0089 for ; Fri, 2 May 2025 14:29:30 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7B1DBBED38 for ; Fri, 2 May 2025 18:29:30 +0000 (UTC) X-FDA: 83398805700.23.6EDF4DE Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by imf16.hostedemail.com (Postfix) with ESMTP id 90CA8180015 for ; Fri, 2 May 2025 18:29:28 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aRBULK76; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf16.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.53 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746210568; a=rsa-sha256; cv=none; b=VoIAz6DCwDhzThD6qXZebYHPjdXxRLTvGOlh9vn+XWTHXwSGw9wQw2kneMYcPsMWZjbSiP MFTrLCWbc63/T9gLGMRfaZ2cwysfAMvE/HFlWEAeiJ+eZagASRoJ1vDoja/YjBVx7d2P0d y5x44DRjcsxwmOKp9+QBxFz2g6yMZIE= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aRBULK76; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf16.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.53 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746210568; 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=zFHm1tfv35vyjBSvb7AN3OxjMGjn0tT8+FpYF9gx+rc=; b=I90Fsn+O8euMSAKm9PKmrTvePBwTCC9OhnNLjkXnTo9ASLURilQPXQteWNJMBCfPblZNxO eL66gWesRgMVV+4AlSI15dQvU2UVB4OQP/YAyAEXTF3f47iRBFt0mMYB12E2ibsBbU77Q7 bVP4W9b1wnm7FditDFG5wqgRWDK0Av0= Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-39ac8e7688aso1667291f8f.2 for ; Fri, 02 May 2025 11:29:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746210567; x=1746815367; 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=zFHm1tfv35vyjBSvb7AN3OxjMGjn0tT8+FpYF9gx+rc=; b=aRBULK762dYByk+mWSF/eIjMcQe8eMKgP3VnvQnY6NFtk00r6OhhEKXC9wF6D0IpMb 7jBshIjf4dYyKqeZzixTU+UII3yqVmeJPaz+7PQ/7dxW/12lygJ1KKDXWjV6n2EZaQjf aT/VhagNHsAth2fYfupohdtrKaf25GVog+JwVx6/Fje6NojyQ1DhLSl4wJwQ3E+w/kq3 5Ah5s1t1PoKe9FuS/vlXVysZLkzOJ+cQIE0/+JyUIO7mIIMrlthGCoPnk6JgTzqcxpMr 7G1gD0rLp0+R/4pqVW/2CyOrhRa8ECh8zJHv+w7V6+hY3DGGku6ynnABYUZvbXxCII+B zMqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746210567; x=1746815367; 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=zFHm1tfv35vyjBSvb7AN3OxjMGjn0tT8+FpYF9gx+rc=; b=WKI6cybFAJDxKYMxQ3M2fbl9boMZ3L9xnRLu04BbdVmklFZIW8OKhGUwCwaNDYtuHN +hmu9dxRjaXaxBWJkp+M1mLfSaLlECyc3cy78Gq5sUH+yY+n2b3L3gRWkB10pOT9vwAO 3fzO7yL+yz0ROht3rrHEYiVapoaf/vggKJiMHHCO6q8VF5zyQ4SMLtATAGA9a2FHxQ+R uSYdoqkO3cM04jw5egj6/KZBjrUxq9tRq7jutAj08prk/+QmFfmzh+mAbNDLHsJF6MNK aHvHlK5nBe0ILaPXqleG6gNTivwcrA3nzFGW7w3CxwiPZ8DrI6j2xhcdzJuZLv4vYO/F IjVA== X-Forwarded-Encrypted: i=1; AJvYcCWIhZDdbKeYnqcsAytVu5bh8tRDN/ykt3Ck6E73G5ddelGyP71/eUEEqHWOlatjq3u+hVVFmWsrCA==@kvack.org X-Gm-Message-State: AOJu0YzztLIMue1kpzSk235oxzJ04mAB1ercm/15kARz0IeCVUJpHUvT n3gH5ZsWiXCjrdHRUrIFjkcUy6VP+M31n8jJ6iu+E4pOf4KJpoc/mz4Js0VQJNNhzp+G/wik3VG 0JJgD0ukONVGu3vp5pc7D/eyRXGQ= X-Gm-Gg: ASbGncsF4TWpN8ryIJW88K4BszielboHh0VoyGcUeR9ywNylejuZSS5gNqsbyxaZalw 0108Qpd3TkX0BBbwnr8d7P4dUfYccsi+JB0zmYcfdnfOU9QT8KJOK4F2L8aW+f5q/C+qjwq15FN duSe7AyDWWUyXxDXkZgQLnCRXMs4UYTPHCcq2Edg== X-Google-Smtp-Source: AGHT+IGZDVjNbQY0k7XiguUPy1qRwoEN4lzehDc7xAB6HtEldTcvHbiAVFR6uTiVw4aghdr0oalOFquu/9roPKdUkII= X-Received: by 2002:a5d:5984:0:b0:3a0:99e9:bcd7 with SMTP id ffacd0b85a97d-3a09cea72c1mr184420f8f.5.1746210566946; Fri, 02 May 2025 11:29:26 -0700 (PDT) MIME-Version: 1.0 References: <20250502001742.3087558-1-shakeel.butt@linux.dev> <20250502001742.3087558-4-shakeel.butt@linux.dev> In-Reply-To: <20250502001742.3087558-4-shakeel.butt@linux.dev> From: Alexei Starovoitov Date: Fri, 2 May 2025 11:29:16 -0700 X-Gm-Features: ATxdqUHqug0Pj9O_29hq5eWY4vn7NLIM1dbUiX1mC592l5Jn0vudNn1sTCMtTQE Message-ID: Subject: Re: [PATCH v2 3/3] memcg: no irq disable for memcg stock lock To: Shakeel Butt Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Alexei Starovoitov , linux-mm , "open list:CONTROL GROUP (CGROUP)" , bpf , LKML , Meta kernel team , Vlastimil Babka Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 90CA8180015 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: wxif1i9w6oxatdgydjri38bx1zmh4knt X-HE-Tag: 1746210568-554412 X-HE-Meta: U2FsdGVkX1/fTJuCUVyMomC8hayVqsuZw1H+WFfNcifEMAMl70687nKaCkBzP1QHbJhmuNNygxk/hwIFmUpdd8qy1DECaXdffFANE7MvXhHVurPuK5FtYpQQicb/w0q9DtEAtLCxjSIXOTKHHsJvdqKqzwo9/zvxOOyJz27m7D0wCPkfpQXyMn1Gq+MDNHiXqCcbrQcq3cZG1eN8KIl5ccxgNueJuX+rZflVqniFFK3MZhhCb1GR+sgyeSjSpFBkpop/H+/0Au23og0ojFLO2E3KSQsrY8OxqFdb2/T1z/q5eB+2YcAPJ7gQJ9uhnHvvfc9BsdxXM58R0laKYxLUfKyJdWGe5hGISD6Nm9SXRxz2d8eJ2bhuFD59hbGl3t+t9KFSBhK6MAI8tBHdLo0fyGkVJfgIsAP27g0R9aI5fpDsT2aP0hL8UPICOtlHEgfSa0OlMcNRGnTXSKtXZyp+Sc0zWtROaeU5R2fZyQrlNNh07iS7sdGdKgDaOEbt6Zsszxx7li5gzjQUJLFqMR9x0duWqI8rtoUoolCH2JmNGXHcCpajQLvHVROA0RsY4CZSSziVGbXxqu7FnDIkMzJn325Z52Tl4Mf6vMhdtIl4PzC1EQEy9XwqWJfAgZqkly88/EB95iXntyKHAthWdssZosnliv13s8W5oeYg5KYeEgMduh5FNRgFqk9gpT2wQ9ygnryOveIQwDX4vmLEv1wjztVG+X1LXDceG31fON3Fiov5XFNqu41MVIpkFMXAlUHzNyPPAtFhoACOY+bhiTnPQhc7LRUF9l+/Z+Sf9ZFcscWxqq+QU5UWeIC4KqXziBgGLBIPvIXeyceixfdlHwnJYyo+VY7M6yyZvxX14RcpcgKELAHRuYEwHZ4nffLlea23ikCTJD6y/cKldbFMaQYnXsxz+5bj3P7fM6X+KnIatiGG3vcXUjcwA+LD1P32G2p1rnR59p/x7vM5d8kd4of vDe8gP9B fFEG/sEQwvCXHjFcCB13V8UJ51fWr76nStUYAoO3zMfa8u6wZOJSHivmRV5c3PVCXMf7U+vcG/OPbmqZuMJbSBZwOKxt/8qwUk+heimcOujItMIwsBYmluG8jIx5r53qIBmdEG7GwsgRZftiRBW7RQ9ES/QHNnrOtRwRSCS+4Ut7ypn9HhFh8ME59Zdf6RUB/Hy4MRdueG7iiEKmNmprdVFIdyq4+R6cCc+nOUiXMNt+UqLqCsQd6eJqzqw5rR8rxfmMFCOzgrWZh8oNo8vaf2GKhleWN4N9W7BJC9WxaQCc9Ga72kexXiUnTWJ2iCmlcVp+KsIAcK4cpKkaGSp00SfNdOYFa1j2P127x 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 Thu, May 1, 2025 at 5:18=E2=80=AFPM Shakeel Butt wrote: > > There is no need to disable irqs to use memcg per-cpu stock, so let's > just not do that. One consequence of this change is if the kernel while > in task context has the memcg stock lock and that cpu got interrupted. > The memcg charges on that cpu in the irq context will take the slow path > of memcg charging. However that should be super rare and should be fine > in general. > > Signed-off-by: Shakeel Butt > Acked-by: Vlastimil Babka > --- > mm/memcontrol.c | 17 +++++++---------- > 1 file changed, 7 insertions(+), 10 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index cd81c70d144b..f8b9c7aa6771 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -1858,7 +1858,6 @@ static bool consume_stock(struct mem_cgroup *memcg,= unsigned int nr_pages, > { > struct memcg_stock_pcp *stock; > uint8_t stock_pages; > - unsigned long flags; > bool ret =3D false; > int i; > > @@ -1866,8 +1865,8 @@ static bool consume_stock(struct mem_cgroup *memcg,= unsigned int nr_pages, > return ret; > > if (gfpflags_allow_spinning(gfp_mask)) > - local_lock_irqsave(&memcg_stock.lock, flags); > - else if (!local_trylock_irqsave(&memcg_stock.lock, flags)) > + local_lock(&memcg_stock.lock); > + else if (!local_trylock(&memcg_stock.lock)) > return ret; I don't think it works. When there is a normal irq and something doing regular GFP_NOWAIT allocation gfpflags_allow_spinning() will be true and local_lock() will reenter and complain that lock->acquired is already set... but only with lockdep on.