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 A8E1AC36010 for ; Fri, 4 Apr 2025 19:38:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E127D6B0005; Fri, 4 Apr 2025 15:38:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DC18B6B000A; Fri, 4 Apr 2025 15:38:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C621E6B000C; Fri, 4 Apr 2025 15:38:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A8A9C6B0005 for ; Fri, 4 Apr 2025 15:38:10 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 990E1B8DAA for ; Fri, 4 Apr 2025 19:38:10 +0000 (UTC) X-FDA: 83297372340.22.2219A5D Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf22.hostedemail.com (Postfix) with ESMTP id 6D507C0004 for ; Fri, 4 Apr 2025 19:38:08 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=2uCftTIf; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf22.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.169 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743795488; a=rsa-sha256; cv=none; b=ZfYiBLoRZDIwRGk5ctwO0bYwJg5PmRr7NYQ7mQiInPUw7dZLlh1aZxyguxLKaEFYI1AwMe dG8p6rrVvjVmEoC8MZKWPlEWTd1Xo/7X7gJUQLEZE3obB5NDJTJ9VHxvSYMSY78rn/ff4w B8C3At1sxyIiyIrfhUdbrDw20SDj+TA= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=2uCftTIf; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf22.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.169 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=1743795488; 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=n4jU9dZ1c7Yovc2ioTyNiJ82SX9/E9otfhXZzP1ZTJc=; b=yWPwihqZ67CgFGzkr0vsNLbWI3OneuTet/4whhsP4LT5eGbmiaxACDJmZEIPglBSp3eVfW D+79x4X4c5NdK3Nxyg8AQpxU8iHSscNn+q5a/jKu+f/VzpEPV59YGv4dGpsEVuGsjPPICP hxc4Rnz+H5O5jKX265fE9+jZof3cthA= Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-4769b16d4fbso13273941cf.2 for ; Fri, 04 Apr 2025 12:38:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1743795487; x=1744400287; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=n4jU9dZ1c7Yovc2ioTyNiJ82SX9/E9otfhXZzP1ZTJc=; b=2uCftTIfNzbfJ1Er0+8rhlDiEOsJlTBM62lRDdPhOirF980EEOKFWcfGGkxzUPmmlx Gr8eDf8NgxMtNyNOi2jW4YlSfOBctN7Y6TlhS4SexskjmpJZKbSpzOj6CNvEGIBWW2qA tWt5/eQbtNSCtEcqq4EEFcyFnQLTlzpohlXvKYxaa0klu9Udepf9ppY03bcPkjYjqChB MK5q6pOJO7dV5gDMnodyWxOH/GZw93dVjZvqioZ8/2PMLMRWsLoLzJChxcHk+vtn8sPT f45Z0x9ZD6aVFdXFXxNle7OIw3XJ7i/7Tsy7mmHLGgFvpH6+KwNGKmMfZ5moPxSEGRM7 csKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743795487; x=1744400287; h=in-reply-to:content-transfer-encoding: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=n4jU9dZ1c7Yovc2ioTyNiJ82SX9/E9otfhXZzP1ZTJc=; b=eGIT113TgYm466T+U/mk8NsJ8cUDno2ys4/MKbVXsMpvWSsetEGnfMdNnxORtU5FRW S2HZOjrh60hbOKSDSX8NT95bciY5j8C1F/FXwI3PSVUPiiGEpkO0FBQi6EUNE2UcWUub E9o8iNHbK01dC8qgoPMNImQ0uUqEpoPuTh9nY+5CSoNP1Prxbt08W5rjY5QdUSigy71N 2lj2sQ9BbvoFThegWL+Td7Vr3mP9Nh5jx4d+zQOj/E8KtficbqITbomiHvNeY1Mvdaz3 024Dcj1dOxbzr2qTLJPvacAefhHLdjd9UqOSr+3n8bRYVA1Z1jE6GQEqvxyOywtK0J1q 7aTA== X-Forwarded-Encrypted: i=1; AJvYcCXDsqtNMlpl2FothbkPWBbdEsiVCpOXf4cxAFkiRHgvINLRzd9aEuoFiJ2rW1vxTRpkzp02fRuOaQ==@kvack.org X-Gm-Message-State: AOJu0Yy7R33abyIUCGjGGFdqZjrCYjCQtUNeXC4LnQvExdqaJqZqho1w WwPXEVjYdnfqU65IKThgF0HpAqTuJ53ABx5uZycgJ3Zaqheb2NMg8ulkcCNPTSg= X-Gm-Gg: ASbGnctv7BEQrIfgBGNFnFg/nLp+7a8Ep4ozv3p6HJ9giquDBzkZf8d7XavDY9FedG3 rGSgS0OI4t1AxXp8jcCNnyDMDTCkQhOLhX/K0G3hPqpHA4smFUS+wBuic0sYSGbk1/E2zSIDT2j i6aM9if8L/ekesKXmeDt4zZOz3vsWmUcqD423t3AnTrKjseh/hKqEUia+p3euf9VVP259VG8wsC tG0zIMdVgMwCV0hLXFIizM3Q8ODWsqh591N2ymvemIF0bjujaaUD+46VN/B18G3EDklX6u5h0Gb NKrVe/v6oqxXUk543xWVwdX8JQ6mrCt8GQWARMRYedI= X-Google-Smtp-Source: AGHT+IFiV5JEVHf/H5z/o5TJU4SUbRPdcSgoWSnaiXwlzx82DlAB9Nhd813vrtCnLKQxfZsESH38BQ== X-Received: by 2002:a05:622a:1a27:b0:476:8a83:960f with SMTP id d75a77b69052e-4792595086emr52294121cf.17.1743795487399; Fri, 04 Apr 2025 12:38:07 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with UTF8SMTPSA id d75a77b69052e-4791b142b9bsm25853551cf.66.2025.04.04.12.38.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Apr 2025 12:38:06 -0700 (PDT) Date: Fri, 4 Apr 2025 15:38:02 -0400 From: Johannes Weiner To: Waiman Long Cc: Tejun Heo , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Michal =?iso-8859-1?Q?Koutn=FD?= , Shuah Khan , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v2 1/2] memcg: Don't generate low/min events if either low/min or elow/emin is 0 Message-ID: <20250404193802.GA373778@cmpxchg.org> References: <20250404012435.656045-1-longman@redhat.com> <1ac51e8e-8dc0-4cd8-9414-f28125061bb3@redhat.com> <20250404181308.GA300138@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6D507C0004 X-Stat-Signature: e1annrmeepc3w737j9znpy5q1at5eqb1 X-Rspam-User: X-HE-Tag: 1743795488-682002 X-HE-Meta: U2FsdGVkX1+a01S25brRwVhqvD4kqoceDXE8zTnHZrRbsAUIVUrupfEgPMLxbSbqUIluRKujZpEFsD7zN6uWg6/b7Rdho9Ptqvq2c8Xy5BZ0htc/HVjUcDDRk7cZe6+AgjYM49ywqVgafiDwwJlES/VdbOneY9/VnVHH1GN3SHfEvU7jYfzbCwU7D1EFecj41UmpsBeq646VwI5Lo9wYQJSqbZJq28uJgl8zGKMEoWh45nQS4+ZkpXd0lFDItgpJCknPBHcKBdMLORHzMDp4MD8xZ1T9OFfQMRVtm9wdK/Eb5WT1Ttjly+CzqGvxIOdnTMTbeGKGTcjoSKy8blpXHFASCocWBPtjH7lUTzcxECuCQbpGismUMUOJYVUp3g9+CJ5rQza44Vtq5KPg3aU7QFfCHuXLjYSjrt3kugv+fygSfDTYRocEm2u0F5vp3u0d3xMuCeVOXdkuKopzomRV+vdKkX7o3TQQE3zbHX9s8sROjbrZS9LfThtaVnmrxaofr70M2B/UFaSXyVSNCwfHJdel5vTljmS2JndO3aQIVngyrHivAbrWsVM0bYzcNEdNhOPrJ+qYP88s1z5YxfgaiP0fSLK8QpebckfNaxxVNm96f0p5P44vM0E0x2HEYN4sHSijUHPhEOfX6edGiTNrnAOd7kCga8JUqZWlT/LuqWdkdRfmvJtD5lpi4rvwvRQ4n6ANCAVN+OMVo++V6DB19bE8r6JtOv7G4cLmUapESg/m3/JEXK5HQuMtP60OFUKYumlbrqk/c6vhm+s1G7ZLr6KvIcCcq9BHm7y7FkD1/D8qoyFS/fRzkjBIw/VszuomBkFlE8si9FMoYOQnzKmXO8rEWy93bhKZOlGcFqI62qrAG6w8OAhpEz3pemG8wLbZz3sWjQwPe9LNuaf3mwy3jMt2q09wYKJGGNlHoCb/fabXBA7IR7MGD1Ms3vP46FKBobUB6G8K59w0vq3Adcq ifQfgt6u xgXFAZQ7MIoVZpAsFJd7E0M7J7Z++lTTAGUG2Ot/rkNGac9IvVT+YT0gO56o9NX8O1/gArIGjcHbusCWpitJcH6WEgPOcebWXH/V5hxYD4OjhTTZ7ImyxKouLdAM8avRAErLpVtx656Af08wEtKpkM/jcoagSABiKLYdjwOdZCrPObOneJh/4T6TaX+8yfzwnCjM8jcENF9Lohk+lhOI9nCWbTaoaVa1j0622czNUNt1bqIGxf8jkL7ApycDhmn3//oe2oTn8Nv/G/BPzYT9kyPglI7ed3xgWDYodUXvkPmx8w1+f26XIBjABjkEjFbNwZjcP7ayUSPqSMNg7r6/pwHpybdn78zHWRW9IByvbyfHW7BiEVQ3TC6YJ1rig0Xgwz9wtzzMlzJoVjyKymiI6yaaY6zpFOyG4fQQ0UKXDXBH4sqxxOnDJTNCYkfVxTmChKD5h0ImsaW7BY/zxLQl6ZJvtT0fgQCoPMPFnmlccjhpkVDw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001181, 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 Fri, Apr 04, 2025 at 02:55:35PM -0400, Waiman Long wrote: > On 4/4/25 2:13 PM, Johannes Weiner wrote: > > * Waiman points out that the weirdness is seeing low events without > > having a low configured. Eh, this isn't really true with recursive > > propagation; you may or may not have an elow depending on parental > > configuration and sibling behavior. > > > Do you mind if we just don't update the low event count if low isn't > set, but leave the rest the same like What's the motivation for doing anything beyond the skip-on-!usage? > @@ -659,21 +659,25 @@ static inline bool mem_cgroup_unprotected(struct > mem_cgro> >  static inline bool mem_cgroup_below_low(struct mem_cgroup *target, >                                         struct mem_cgroup *memcg) >  { > +       unsigned long elow; > + >         if (mem_cgroup_unprotected(target, memcg)) >                 return false; > > -       return READ_ONCE(memcg->memory.elow) >= > -               page_counter_read(&memcg->memory); > +       elow = READ_ONCE(memcg->memory.elow); > +       return elow && (page_counter_read(&memcg->memory) <= elow); >  } > >  static inline bool mem_cgroup_below_min(struct mem_cgroup *target, >                                         struct mem_cgroup *memcg) >  { > +       unsigned long emin; > + >         if (mem_cgroup_unprotected(target, memcg)) >                 return false; > > -       return READ_ONCE(memcg->memory.emin) >= > -               page_counter_read(&memcg->memory); > +       emin = READ_ONCE(memcg->memory.emin); > +       return emin && (page_counter_read(&memcg->memory) <= emin); >  } This still redefines the empty case to mean excess. That's a quirk I would have liked to avoid. I don't see why you would need it? > @@ -5919,7 +5923,8 @@ static void shrink_node_memcgs(pg_data_t *pgdat, > struct s> >                                 sc->memcg_low_skipped = 1; >                                 continue; >                         } > -                       memcg_memory_event(memcg, MEMCG_LOW); > +                       if (memcg->memory.low) > +                               memcg_memory_event(memcg, MEMCG_LOW); That's not right. In setups where protection comes from the parent, no breaches would ever be counted.