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 C6E57C3ABA5 for ; Wed, 30 Apr 2025 00:30:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 94B5F6B00BA; Tue, 29 Apr 2025 20:30:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8CE456B00CD; Tue, 29 Apr 2025 20:30:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FDBB6B00CE; Tue, 29 Apr 2025 20:30:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 466016B00BA for ; Tue, 29 Apr 2025 20:30:16 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 362EC814F7 for ; Tue, 29 Apr 2025 23:51:11 +0000 (UTC) X-FDA: 83388729942.19.39985A3 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf07.hostedemail.com (Postfix) with ESMTP id 4E9DB40009 for ; Tue, 29 Apr 2025 23:51:09 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eZfA0NZl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745970669; a=rsa-sha256; cv=none; b=bXkltUX6rrBW4j9jHDuPBHJm+W4mC2KCVbgLjbXsR7+tCqHrmOEkQt2qfZ4sFY+M5NVpf1 m5HXknEkDMB0igO+zOfkF1uzVcuw/Mak6Z/Sa3Ue/bCpGH3s8mqG4qOWKhGtPxOxdTmSfi +e1NcgYF3pwswycAzci41K8JVJEas+c= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eZfA0NZl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.214.171 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=1745970669; 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=SWi0iKQPjiK8VNZS+w1eIOJ6efpbQpqRgqiKbA2bPi8=; b=wiU2Im33KRe9eCaMCeG8xVuEhLaNwYPuoMEDVlcI2JEW7HgXmLi0rFaKdb34oXF0pBgGbA 1PnlVUGdrk/mnMvMW4LctGMKwH+l6cWP8r3PnjP98KTXAZA5i2gBULUZVAoSipYmDzWxHN xkNPTQp9px1HCMQgzNq0I41oHnE4ql0= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-227c7e57da2so56875835ad.0 for ; Tue, 29 Apr 2025 16:51:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745970668; x=1746575468; 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=SWi0iKQPjiK8VNZS+w1eIOJ6efpbQpqRgqiKbA2bPi8=; b=eZfA0NZl/70oLbXzP7ARaTCsIqMk1T7nyVEdolbOtlMkC9WJLuXMNXLSsC5fXiFHR6 dX4IemRidej0YjYGk6BL9rDFZw7DmDVI3rcMLd/4iY4Thzx3dH4yZq/77F7QyyFWf+2u A9lmakwEwlQdHk8hySIL+TaRD6Uvp+1/mtbt/cykPEWF1b5gJjtWoZLzKX3w8Ry7/6WH n16zw/F4D3nSVfPmLBbIipEGSLwU+988hFgt12Gqj9B8OpiQI0GzJLztR1gLXZfPxevG LBViI5dgp+oidWsFWHMh/CuvqRG7LGehG5wthPn0NhFhL6dTlXLtm9otcg4/fYhSXsOV CgQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745970668; x=1746575468; 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=SWi0iKQPjiK8VNZS+w1eIOJ6efpbQpqRgqiKbA2bPi8=; b=e+hxdkZQZIwIHrFkJnmyCftd0zZ9wGVyOULRp0HzylhGSXfzhqcmEA1QihLzGCCXZr oTGICj56ngNHOJfEQOmHV0tloYRZAQa6amTSuPyfzae0E18xXpe5viSnCOmRF9I41Ra1 so3ioWhdiv2Jv7JlD8uFcm6BwFLx62QUWO6mS8Fdzx7J/wWNugJoHHjLild+rjLfgtWT o9bJccXjbuliFvCCHY65zeYWS5wNt1TvQB1Q16OSovmapX/k+OhxNNy+pIP7AQo2G7Pa uDQkxgLPt5LjN9yNaJZLvvVy5qgXaggZm2SutJ9VgtY+xZcPuI1BbyghWQgKbJwRW22p o8ng== X-Forwarded-Encrypted: i=1; AJvYcCWvKLmeXTjN8fyWep+EqqBqrVhjr7adUu0+jRDf1015XN6X+OX8LGpyXvZ4BaGU27lFkrWvhWTFrw==@kvack.org X-Gm-Message-State: AOJu0YwlP9+kKPDfO+vasDI+8ZFDbEqWHibY5yx0Dy1GL9p8FUqgTuUl gRWtpv6oRBIe8WuJyOh4ZfoRd7cIXgswaXMk70q8dBu5Ky08aYvR X-Gm-Gg: ASbGncuEsAUEzGxIPj3v9lILGQPfWZ15oThzYHuVejG1heq/4tTwezyjMTDFkshUS8G bFDvJhtxwDKhuM3Zo4FuKbpsJ87zgBWJXeXBYI07wfADrCi3lhgTqxMDcIGr+moMExsIns17Ug1 Py0Uk7I+t632zvoifWE3+YXZQzsHPZ9SeX6Enrx6opw5yDlGcj8MdTkYY/39whZewNAkg1Db9yV aCpBAFf6zCxXSVuTNwP31DretfGBXXaB2SPb6oDnOQRN29gxcRJncxl0Ni/oQPoMkGRl8Hhr6Di pfKgdTzTFwBVCIbDsN0mw2M1Ow5tewZ6ukWSHCzN33DfcGBjEKELZ87sPnvRE32bSm0= X-Google-Smtp-Source: AGHT+IFAj6/RzPK4X20pnS0N9JEaW3fbDH1N/Pm18wDM03DDlN1B9O+hmXJi+f6vFlhc2cYqcdfalA== X-Received: by 2002:a17:903:2287:b0:22c:33b2:e410 with SMTP id d9443c01a7336-22df5764831mr6298515ad.2.1745970668013; Tue, 29 Apr 2025 16:51:08 -0700 (PDT) Received: from MacBook-Pro-49.local ([2620:10d:c090:400::5:13f8]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4e0cb15sm109577275ad.106.2025.04.29.16.51.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Apr 2025 16:51:07 -0700 (PDT) Date: Tue, 29 Apr 2025 16:51:03 -0700 From: Alexei Starovoitov To: Shakeel Butt Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Sebastian Andrzej Siewior , Vlastimil Babka , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team , bpf@vger.kernel.org Subject: Re: [PATCH 1/4] memcg: simplify consume_stock Message-ID: References: <20250429230428.1935619-1-shakeel.butt@linux.dev> <20250429230428.1935619-2-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250429230428.1935619-2-shakeel.butt@linux.dev> X-Rspam-User: X-Rspamd-Queue-Id: 4E9DB40009 X-Rspamd-Server: rspam04 X-Stat-Signature: ehwqm5hgy438wj4g3gu4ihmrojh1rs8p X-HE-Tag: 1745970669-680531 X-HE-Meta: U2FsdGVkX1/ynMYZerHM1udZliRH0TOHUC9kBq1SmR8PId257CLjdXhcKf2g8FQxKYV4063WcJh52ivDotdZMGGy5AxoklbqS3xhS1HECoEmchjCWxO6mKgvJqkNOBvR9R+M1kvYfPjcoKU2TZQLP7sJosJBjF4wO3/3wrHpvdhj6A7LQxbANx+cpYKIgRkDE2cr6HSsP1i75DESgWb8RcjmMbt/Gj6JrwagibWgaIbzVh2fyc9ZLIW89ogKimXRkaPtJgf/4LJs/gd4XQ4vEheiA+ICoLS7nubZfUqzp1/3nAVvgvzjIFNOs9VNK0f3NFUazJoxtgeLJLqIbvqhG3gnLVwxp6W1SJ94PZOTe/DN8bcM2z7LaCssXyXBJrFjm2pWTxSCXvIjYMB6GW2kqFaYhsysvVvC8VpZ4WJB2dcRALsQQGqVNp/oOqQnXYqrrlOtKpNmR2ZnJVBjZCT5SThLKr73zzfpATicfvTBb1Sb/l5oPKW/YiZ2+D2yty74uAH5zlh0P2RihVniYOjX7lYjQMjFIXVHSfpOvFe0TRWo3tRcE1epqKuJ9YK17e5P7kTy/m0SSqmTBeIZPxPrdXroS7twPDlwGD1HYhvBZD7iARg+bpzW47egZ9l6FFIdQzV5yGRdmJCQlpIusEWfeIPjmZiVF0ohy3unYyflLUZii5Or5FL7/zPZqqLoZynSHJB5QFly+kSx17w3SEAh1M4V4gCwt8Enp3s5mDJvHJxTOyr5GWdmhebjNynRSwCPtrdsgWY5w4J770EAkUklobGzXwz8crLWwgWjXB9CcwUURuXe4T/qXkfN5wPX4hPyIWRKm94ykCmLNihIj/SmmQOQVTBblHYmfPj1JaFaI8KTBEkdme/5Rx+j/m2w8QtFDdhDVHcQ5lilVzmnJG1awYsA+9afEhhvNEMMLMi42hqUFhJ2esg7h/bONvixNQwm/7SPSbFubEN3Wlb2Z2a XbLkOJot 0KgkqyFeKa9bCqxYQVYB/tUwczb8ytGfmIo5rVJm3AE65xgecjp6i5l+KlmGe8bEjAaFuh5Q7Z+IXFI1fNuDH+EjNXzkWlmE+1lsImKNCvpdEGYEQ9XStUagbM/X/F4It14jATCKX7uxWOrIPUAYDT49QIynKbSUwQ5m3wvg0FbMZwpH4jMWx2+hpFeVQEnNruBNkIWU9jVSSW91omQj07hHSBkmI4CcayMEyUPq66eURJmVcqlpzlxmEKRCjX6kzRUzj10ixpbeYrRUvjkqK+LWu7y9SsoycYOYPIEAQsSx/dBXYNN5nZOh8JQ/G4DeGLLDPYeGnDVL0Qo1Esf6+jLZu54s3JzwYU3jmQ6xPuvk35E2TOHS8rqwKM3dtibVlj0Kut/991uu1G4+VmQqlAI4csNtUN2YEHWQijftytLxgQ8pVrWaJ4NfT2sSyx3Z1/HuowwY+fUfXpwAYVU0YAGnGxO6uu6dQfeB+4Y7Oc02CRqCv123c3ia6gkd0bMjSdU5l2qpEvrrinQI= 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 29, 2025 at 04:04:25PM -0700, Shakeel Butt wrote: > The consume_stock() does not need to check gfp_mask for spinning and can > simply trylock the local lock to decide to proceed or fail. No need to > spin at all for local lock. > > Signed-off-by: Shakeel Butt > --- > mm/memcontrol.c | 20 +++++++------------- > 1 file changed, 7 insertions(+), 13 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 650fe4314c39..40d0838d88bc 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -1804,16 +1804,14 @@ static bool obj_stock_flush_required(struct memcg_stock_pcp *stock, > * consume_stock: Try to consume stocked charge on this cpu. > * @memcg: memcg to consume from. > * @nr_pages: how many pages to charge. > - * @gfp_mask: allocation mask. > * > - * The charges will only happen if @memcg matches the current cpu's memcg > - * stock, and at least @nr_pages are available in that stock. Failure to > - * service an allocation will refill the stock. > + * Consume the cached charge if enough nr_pages are present otherwise return > + * failure. Also return failure for charge request larger than > + * MEMCG_CHARGE_BATCH or if the local lock is already taken. > * > * returns true if successful, false otherwise. > */ > -static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages, > - gfp_t gfp_mask) > +static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages) > { > struct memcg_stock_pcp *stock; > uint8_t stock_pages; > @@ -1821,12 +1819,8 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages, > bool ret = false; > int i; > > - if (nr_pages > MEMCG_CHARGE_BATCH) > - return ret; > - > - if (gfpflags_allow_spinning(gfp_mask)) > - local_lock_irqsave(&memcg_stock.stock_lock, flags); > - else if (!local_trylock_irqsave(&memcg_stock.stock_lock, flags)) > + if (nr_pages > MEMCG_CHARGE_BATCH || > + !local_trylock_irqsave(&memcg_stock.stock_lock, flags)) I don't think it's a good idea. spin_trylock() will fail often enough in PREEMPT_RT. Even during normal boot I see preemption between tasks and they contend on the same cpu for the same local_lock==spin_lock. Making them take slow path is a significant behavior change that needs to be carefully considered. Also please cc bpf@vger in the future for these kind of changes.