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 C3C45C3DA4A for ; Fri, 26 Jul 2024 14:16:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33D3E6B009C; Fri, 26 Jul 2024 10:16:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2ED5B6B009E; Fri, 26 Jul 2024 10:16:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18DE56B00A4; Fri, 26 Jul 2024 10:16:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id EF64C6B009C for ; Fri, 26 Jul 2024 10:16:51 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8304441912 for ; Fri, 26 Jul 2024 14:16:51 +0000 (UTC) X-FDA: 82382105022.05.FDFCD86 Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by imf30.hostedemail.com (Postfix) with ESMTP id 004A08001F for ; Fri, 26 Jul 2024 14:16:47 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b="YPoW/WjM"; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf30.hostedemail.com: domain of mkoutny@suse.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=mkoutny@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722003367; a=rsa-sha256; cv=none; b=ajTs9cT1fzrUnSykqQDUo9IzVMcTUbvkGdZrgyGYDKBUNBuJdp2pWJ2dDCPPFrXR9oj0ME yVZShFfx5YT5Y0UuIqqrlhz3vig5BZT/IQinqBAv4ipppfq7rAkmunBTYc6LUXdyWPlIKY 0zHps4Qv8DzdQsYjhU/TKTPMCReU+O4= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b="YPoW/WjM"; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf30.hostedemail.com: domain of mkoutny@suse.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=mkoutny@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722003367; 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=emG34p2KtXPh2/ovuwXCfVp++qU/JuZyzHPenM9H+PY=; b=pJzeBptTMsIc9QPaiJ3YB7nURhSFqZLuD6nNwziCQkxeH/HoXhPW/Jw5rmAJ+j669K2AL5 0YuEsLKXjSzMpWGWkS/6m9JWUwSlmJP/2TsbNv1lGKF0f27KYXCFvquPnKlqhtUX/Ovt0x SKw1+fV7VnJBIA43mvmjTq1PSsiiIPg= Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2ef2cb7d562so16171001fa.3 for ; Fri, 26 Jul 2024 07:16:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1722003406; x=1722608206; 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=emG34p2KtXPh2/ovuwXCfVp++qU/JuZyzHPenM9H+PY=; b=YPoW/WjMnntcGV3Zs0aClqudmLKrAEveua33SwJM16ioOtYb9y2Fkx8lHacUgrl3+F +HcqHGPp6JlyxIEX5benU9YS1WFoACo+2YOCtuTstIao1bBnu/YfuAY+VAiWijBmbyrY RgyT0sJk9WyVw3RuyLCL0DstxPMnoXwEa/qqQN093FAyFYi4DmdUVLHD/sWoRqlDaTG5 dnyKo87aQWpBmbwlk4AG7TRERFMnjhJd6hDAjVsxlXqjmDCSmzKaIeRU+Poww6sV5IV4 B7cz5FPI5D3LCYIbiUox0ViCKy1xI4dAAwqzDETIyJISr6ZT/hp2E/3UDQG85adUsEnW prJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722003406; x=1722608206; 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=emG34p2KtXPh2/ovuwXCfVp++qU/JuZyzHPenM9H+PY=; b=HdWq/qyx+IpDQCTtovLL9Zx/3zeuL/wTD1ZpUBnjcjhWNlnanAcVX8c6SE/+ArT4Ll KM7cLU1Rc3igtrcBCwZ4oCXvYp8fO3QSBoOcpj4Fe9iLkfRALCP0TmPC6aywmFnKuuUb 5hpYlw5LRNEbF1XxLXsCSjtuyD/V8quUbdthjZSK2s4MELgmf5rH6RVzE+0JIZAXkiC4 RsGUftwfRSdDos1KMAugmO0CWJbnjJvhdFnlPvL0HtbcK1Pp0T4ulsQxMIuwfY8gG4cF iRxpy4n0kgWrZFawpR1XfpktSH2utrepMzSWja8F8/kjg0dq+iU2tp8yZWZIR7kX9pWi kOqA== X-Forwarded-Encrypted: i=1; AJvYcCVmLMKTqVhbeid820OXzIjupLiwve8wU7Sc5RrqCPfSoaid8VBC/0q845+9/Brnwh70lMOc43glCNJn58DVLLIuKUc= X-Gm-Message-State: AOJu0YyFfS+MB6flva+ropIC1X/b7m8Dsq/kpOPQfJTenx8JwOIto9rh 5pnMO4ebWPpm0U0OmZEDaUzL4r7n5y7H5JE8xL16TkXtKkPuyfjh+8Ew9FoEiqc= X-Google-Smtp-Source: AGHT+IGHaC/vCMAwHQtpOlOyOmOZd/8WjC/q/CatNKzI+1VerIf0vdYnC2mTlv+ySWYpRDYmYfilhQ== X-Received: by 2002:a2e:9f13:0:b0:2ee:87e9:319d with SMTP id 38308e7fff4ca-2f03dbf2872mr39751641fa.48.1722003405879; Fri, 26 Jul 2024 07:16:45 -0700 (PDT) Received: from blackdock.suse.cz ([193.86.92.181]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2cf28c7b0b3sm3538344a91.15.2024.07.26.07.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jul 2024 07:16:44 -0700 (PDT) Date: Fri, 26 Jul 2024 16:16:33 +0200 From: Michal =?utf-8?Q?Koutn=C3=BD?= To: David Finkel Cc: Muchun Song , Tejun Heo , Roman Gushchin , Andrew Morton , core-services@vimeo.com, Jonathan Corbet , Michal Hocko , Shakeel Butt , Shuah Khan , Johannes Weiner , Zefan Li , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Waiman Long Subject: Re: [PATCH v5 1/2] mm, memcg: cg2 memory{.swap,}.peak write handlers Message-ID: <5xlwzzz3gs4rk5df32kfh7fx5ftj3a4iwryqxdb4c3oniuehwk@d5kum5xr4uw6> References: <20240724161942.3448841-1-davidf@vimeo.com> <20240724161942.3448841-2-davidf@vimeo.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="okcpuwvp3anv55ri" Content-Disposition: inline In-Reply-To: <20240724161942.3448841-2-davidf@vimeo.com> X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 004A08001F X-Stat-Signature: p3ag6m7txbjfnswsyqtjpy6ro6xmrouq X-Rspam-User: X-HE-Tag: 1722003407-197857 X-HE-Meta: U2FsdGVkX19vYqmEVO3KlyojcCLTO3THcp/jk/wZmUQ5zMFLqlgLIrVfXRG/m2B49FHPKIHEJeL9KR26H0BQGiazAoGTGVjxDrTLF47u2EMzYTglgcg33pfbJBfqqtpaY5foiqnns374Zz87tErZR3q4XhZd60wSdlfodDKHJbr9w3QWvgH2eXrrkEp5rfyJCfmpBHB1yoDBx1486xck21U9uSh+tuF6L5AMO/k/bqm7rKzGXhw/wnrOTZ8KDLv5pQuXd0UpnhF1YKi+wxXyFIWu6siHtwdqdJ5SjCb/3zW+fJKmiMWbZOeb/VXPTTJ3F2mxVBdyJz9bnff9wGrSeAW5nbQ3QARVOAR8RxZ/VpwSpEsZNKINlp4AASaqxhR9hl4jUCR5JFJ3uPVvDXaj8GzEllAZoi5UTzc4LcMxr2mwCAY5Af9+D5z/qu0h4wk0i4jOtSpNX65bllBJyap5MaT+63Rux7MWNPBl3wvD0bowOnoyQYBHw5maHDtECTUUZgqMvRkmqWG6AVY42y38wdM1+YROw6sz/HkuuJhEA0r4mUdCKZNHS3ThopAEjMyUSMu9lmUovr6rIrIaxXgHz+xQLlsiYxfNcfDbdGOCjPLCTYjU+GVvmLsd+y0H6Ljw28RboGjjBOEw0uUexiGRT9X75t6yNrsOTAg+D/P191Lr1RhKUl/Aq9/c2rad8pOeuHtTSn0xktMggl554LbGpJf46kQeuwEAZnCpdUiWuRVU3zKEbrEUy3lDND9zqoXj6Y2V/9K2ool7hfJruILUt71q0PU3c9UmYno/aodf1Hu31zh6d9EUWP9zr+GW4crNioM4nQJqhH7embeDW7m4uPzSKZ0BNSnHC/1BnWRd9cqFGtMUGT3bbTBFnyEZsCZEStos919YnNBRRqG0wJZInRkKtXc3gDx3Xw9yaNABF5V79h2Qnf91k+QS0lR3P/15QsxM0Bpikmt4+4K6yoN OjPB5p99 edSo3hIWUuA1qAkL0BN9t9cWTVoejFRBCbuSxJu9aZ6GDFEDfrOd9+s5O6o1LyJX4vfz4xhU9/x5CeI8NFIatSbNTwvNkcX6pMnbzdPGZaVBiclk83pcURfYrKqvt/EXbNd/FeWB8dP6pzyZ7y0Z3kJUrl0nm57iJgDxUuDuP9BMKE6OmhKXJlRJsDItl26eMwdmC7sKTvtiEOHM4KKz/Rx/mcH6BjtslDccF77SFlIQ76FIYNfX7+ifzZmKSG/9GAPK1fJpKP46NyE5q3SBy40orQqvy1Iq/P1Cjkr3C2hASsBGSqjqRVVppG29YgJZFD3qKFBXBUnNdeyvxaCjBKLR2C90rN4MNZIDK77JMvMxJqHJQIKMK2JzlO0B/71oS8nc1MTxCWQDeUugDdNOIizTrlBAykvz9uR2kWLqhJ7gQs7HAED0rHX6g8g== 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: --okcpuwvp3anv55ri Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello David. On Wed, Jul 24, 2024 at 12:19:41PM GMT, David Finkel wro= te: > Writing a specific string to the memory.peak and memory.swap.peak > pseudo-files reset the high watermark to the current usage for > subsequent reads through that same fd. This is elegant and nice work! (Caught my attention, so a few nits below.) > --- a/include/linux/cgroup-defs.h > +++ b/include/linux/cgroup-defs.h > @@ -775,6 +775,11 @@ struct cgroup_subsys { > =20 > extern struct percpu_rw_semaphore cgroup_threadgroup_rwsem; > =20 > +struct cgroup_of_peak { > + long value; Wouldn't this better be unsigned like watermarks themselves? > + struct list_head list; > +}; > --- a/include/linux/page_counter.h > +++ b/include/linux/page_counter.h > @@ -26,6 +26,7 @@ struct page_counter { > atomic_long_t children_low_usage; > =20 > unsigned long watermark; > + unsigned long local_watermark; At first, I struggled understading what the locality is (when the local value is actually in of_peak), IIUC, it's more about temporal position. I'd suggest a comment (if not a name) like: /* latest reset watermark */ > + unsigned long local_watermark; > + > + /* User wants global or local peak? */ > + if (fd_peak =3D=3D -1UL) Here you use typed -1UL but not in other places. (Maybe define an explicit macro value ((unsigned long)-1)?) > +static ssize_t peak_write(struct kernfs_open_file *of, char *buf, size_t= nbytes, > + loff_t off, struct page_counter *pc, > + struct list_head *watchers) > +{ =2E.. > + list_for_each_entry(peer_ctx, watchers, list) > + if (usage > peer_ctx->value) > + peer_ctx->value =3D usage; The READ_ONCE() in peak_show() suggests it could be WRITE_ONCE() here. > + > + /* initial write, register watcher */ > + if (ofp->value =3D=3D -1) > + list_add(&ofp->list, watchers); > + > + ofp->value =3D usage; Move the registration before iteration and drop the extra assignment? Thanks, Michal --okcpuwvp3anv55ri Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTd6mfF2PbEZnpdoAkt3Wney77BSQUCZqOvvwAKCRAt3Wney77B SSX4AP0RNpLzSpS7VepJJSXO0cnglvhT9aA/V5Q9ijokaiYGuwEAgKlJXbpvECDK iorTeuqInwN7G90wCzeqJItD9aQVAA0= =/LdG -----END PGP SIGNATURE----- --okcpuwvp3anv55ri--