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 26CB0C433F5 for ; Tue, 18 Jan 2022 18:26:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 769546B0071; Tue, 18 Jan 2022 13:26:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 719A66B0073; Tue, 18 Jan 2022 13:26:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5B95C6B0074; Tue, 18 Jan 2022 13:26:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0109.hostedemail.com [216.40.44.109]) by kanga.kvack.org (Postfix) with ESMTP id 49F856B0071 for ; Tue, 18 Jan 2022 13:26:13 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id E5A05180AB9FA for ; Tue, 18 Jan 2022 18:26:12 +0000 (UTC) X-FDA: 79044237384.14.BDFA6A9 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf09.hostedemail.com (Postfix) with ESMTP id 239C4140003 for ; Tue, 18 Jan 2022 18:26:12 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E37FB21709; Tue, 18 Jan 2022 18:26:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1642530370; h=from:from:reply-to: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; bh=ge3g8LQjPPjPT4iWHPjDIO/ZDcQCDnvHvSUhi3iQ1rQ=; b=OrSB7UBk3Zx97KIJkOYB5/kufBllUFb5h0WOoqblWugIrDuY6fI4jMScI8ZXt28J8tyxS1 bS38D81tmtfhLt1vAcQlfLpfAqsWk7kcK5h/W40SGY9cXN/ZY7TVfEA3pKjrCwqhplgM/8 CQJV6oKK94ZSeCnenftUsSkJ0Ok5ARQ= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BA48C13AC9; Tue, 18 Jan 2022 18:26:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id rbGALEIG52EsPgAAMHmgww (envelope-from ); Tue, 18 Jan 2022 18:26:10 +0000 From: =?UTF-8?q?Michal=20Koutn=C3=BD?= To: bigeasy@linutronix.de Cc: akpm@linux-foundation.org, cgroups@vger.kernel.org, hannes@cmpxchg.org, linux-mm@kvack.org, longman@redhat.com, mhocko@kernel.org, mkoutny@suse.com, peterz@infradead.org, tglx@linutronix.de, vdavydov.dev@gmail.com Subject: [PATCH] mm/memcg: Do not check v1 event counter when not needed Date: Tue, 18 Jan 2022 19:26:00 +0100 Message-Id: <20220118182600.15007-1-mkoutny@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Rspamd-Queue-Id: 239C4140003 X-Stat-Signature: x3ww75pue4bjaxnaq6sr8iifnnrneo9x Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=OrSB7UBk; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf09.hostedemail.com: domain of mkoutny@suse.com designates 195.135.220.28 as permitted sender) smtp.mailfrom=mkoutny@suse.com X-Rspamd-Server: rspam08 X-HE-Tag: 1642530372-376693 Content-Transfer-Encoding: quoted-printable 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: The function memcg_check_events() is called to trigger possible event notifications or soft limit updates when page event "clock" moves sufficiently. This tracking is not needed when neither soft limit nor (v1= ) event notifications are configured. The tracking can catch-up with the clock at any time upon thresholds configuration. Guard this functionality behind an unlikely static branch (soft limit and events are presumably rather unused than used). This has slight insignificant performance gain in page-fault specific benchmark but overall no performance impact is expected. The goal is to partition the charging code per provided user functionality. Suggested-by: Michal Hocko Signed-off-by: Michal Koutn=C3=BD --- mm/memcontrol.c | 8 ++++++++ 1 file changed, 8 insertions(+) On Fri, Jan 14, 2022 at 10:09:35AM +0100, Sebastian Andrzej Siewior wrote: > So avoiding these two also avoids memcg_check_events()? I've made the matter explicit with the surrounding patch. [ The performance "gain" is negligible (differences of pft [1] are dominate= d by non-root memcg classification): nocg, nopatch cg, nopatch = nocg, patch cg, patch Hmean faults/sec-2 273366.6312 ( 0.00%) 243573.3767 * -10.90%* = 273901.9709 * 0.20%* 247702.4104 * -9.39%* CoeffVar faults/sec-2 3.8771 ( 0.00%) 3.8396 ( 0.97%) = 3.1400 ( 19.01%) 4.1188 ( -6.24%) cg, nopatch = cg, patch Hmean faults/sec-2 243573.3767 ( 0.00%) = 247702.4104 * 1.70%* CoeffVar faults/sec-2 3.8396 ( 0.00%) = 4.1188 ( -7.27%) On less targetted benchmarks it's well below noise. ] I think it would make sense inserting the patch into your series and subsequently reject enabling on PREEMPT_RT -- provided this patch makes s= ense to others too -- the justification is rather functionality splitting for this PREEMPT_RT effort. > Are there plans to remove v1 or is this part of "we must not break > userland"? It's part of that mantra, so v1 can't be simply removed. OTOH, my sensing= is that this change also fits under not extending v1 (to avoid doubling effo= rt on everything). Michal [1] https://github.com/gormanm/mmtests/blob/6bcb8b301a48386e0cc63a21f7642= 048a3ceaed5/configs/config-pagealloc-performance#L6 diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4a7b3ebf8e48..7f64ce33d137 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -106,6 +106,8 @@ static bool do_memsw_account(void) #define THRESHOLDS_EVENTS_TARGET 128 #define SOFTLIMIT_EVENTS_TARGET 1024 =20 +DEFINE_STATIC_KEY_FALSE(memcg_v1_events_enabled_key); + /* * Cgroups above their limits are maintained in a RB-Tree, independent o= f * their hierarchy representation @@ -852,6 +854,9 @@ static bool mem_cgroup_event_ratelimit(struct mem_cgr= oup *memcg, */ static void memcg_check_events(struct mem_cgroup *memcg, int nid) { + if (!static_branch_unlikely(&memcg_v1_events_enabled_key)) + return; + /* threshold event is triggered in finer grain than soft limit */ if (unlikely(mem_cgroup_event_ratelimit(memcg, MEM_CGROUP_TARGET_THRESH))) { @@ -3757,6 +3762,7 @@ static ssize_t mem_cgroup_write(struct kernfs_open_= file *of, break; case RES_SOFT_LIMIT: memcg->soft_limit =3D nr_pages; + static_branch_enable(&memcg_v1_events_enabled_key); ret =3D 0; break; } @@ -4831,6 +4837,8 @@ static ssize_t memcg_write_event_control(struct ker= nfs_open_file *of, list_add(&event->list, &memcg->event_list); spin_unlock_irq(&memcg->event_list_lock); =20 + static_branch_enable(&memcg_v1_events_enabled_key); + fdput(cfile); fdput(efile); =20 --=20 2.34.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michal=20Koutn=C3=BD?= Subject: [PATCH] mm/memcg: Do not check v1 event counter when not needed Date: Tue, 18 Jan 2022 19:26:00 +0100 Message-ID: <20220118182600.15007-1-mkoutny@suse.com> References: Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1642530370; h=from:from:reply-to: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; bh=ge3g8LQjPPjPT4iWHPjDIO/ZDcQCDnvHvSUhi3iQ1rQ=; b=OrSB7UBk3Zx97KIJkOYB5/kufBllUFb5h0WOoqblWugIrDuY6fI4jMScI8ZXt28J8tyxS1 bS38D81tmtfhLt1vAcQlfLpfAqsWk7kcK5h/W40SGY9cXN/ZY7TVfEA3pKjrCwqhplgM/8 CQJV6oKK94ZSeCnenftUsSkJ0Ok5ARQ= In-Reply-To: List-ID: Content-Type: text/plain; charset="macroman" To: bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org Cc: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, mkoutny-IBi9RG/b67k@public.gmane.org, peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, vdavydov.dev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org VGhlIGZ1bmN0aW9uIG1lbWNnX2NoZWNrX2V2ZW50cygpIGlzIGNhbGxlZCB0byB0cmlnZ2VyIHBv c3NpYmxlIGV2ZW50Cm5vdGlmaWNhdGlvbnMgb3Igc29mdCBsaW1pdCB1cGRhdGVzIHdoZW4gcGFn ZSBldmVudCAiY2xvY2siIG1vdmVzCnN1ZmZpY2llbnRseS4gVGhpcyB0cmFja2luZyBpcyBub3Qg bmVlZGVkIHdoZW4gbmVpdGhlciBzb2Z0IGxpbWl0IG5vciAodjEpCmV2ZW50IG5vdGlmaWNhdGlv bnMgYXJlIGNvbmZpZ3VyZWQuIFRoZSB0cmFja2luZyBjYW4gY2F0Y2gtdXAKd2l0aCB0aGUgY2xv Y2sgYXQgYW55IHRpbWUgdXBvbiB0aHJlc2hvbGRzIGNvbmZpZ3VyYXRpb24uCgpHdWFyZCB0aGlz IGZ1bmN0aW9uYWxpdHkgYmVoaW5kIGFuIHVubGlrZWx5IHN0YXRpYyBicmFuY2ggKHNvZnQgbGlt aXQKYW5kIGV2ZW50cyBhcmUgcHJlc3VtYWJseSByYXRoZXIgdW51c2VkIHRoYW4gdXNlZCkuCgpU aGlzIGhhcyBzbGlnaHQgaW5zaWduaWZpY2FudCBwZXJmb3JtYW5jZSBnYWluIGluIHBhZ2UtZmF1 bHQgc3BlY2lmaWMKYmVuY2htYXJrIGJ1dCBvdmVyYWxsIG5vIHBlcmZvcm1hbmNlIGltcGFjdCBp cyBleHBlY3RlZC4gVGhlIGdvYWwgaXMgdG8KcGFydGl0aW9uIHRoZSBjaGFyZ2luZyBjb2RlIHBl ciBwcm92aWRlZCB1c2VyIGZ1bmN0aW9uYWxpdHkuCgpTdWdnZXN0ZWQtYnk6IE1pY2hhbCBIb2Nr byA8bWhvY2tvLUlCaTlSRy9iNjdrQHB1YmxpYy5nbWFuZS5vcmc+ClNpZ25lZC1vZmYtYnk6IE1p Y2hhbCBLb3V0bsO9IDxta291dG55LUlCaTlSRy9iNjdrQHB1YmxpYy5nbWFuZS5vcmc+Ci0tLQog bW0vbWVtY29udHJvbC5jIHwgOCArKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKQoKCk9uIEZyaSwgSmFuIDE0LCAyMDIyIGF0IDEwOjA5OjM1QU0gKzAxMDAsIFNlYmFzdGlh biBBbmRyemVqIFNpZXdpb3IgPGJpZ2Vhc3ktaGZadGVzcUZuY1lPd0JXNGtHNEtzUUBwdWJsaWMu Z21hbmUub3JnPiB3cm90ZToKPiBTbyBhdm9pZGluZyB0aGVzZSB0d28gYWxzbyBhdm9pZHMgbWVt Y2dfY2hlY2tfZXZlbnRzKCk/CgpJJ3ZlIG1hZGUgdGhlIG1hdHRlciBleHBsaWNpdCB3aXRoIHRo ZSBzdXJyb3VuZGluZyBwYXRjaC4KClsKVGhlIHBlcmZvcm1hbmNlICJnYWluIiBpcyBuZWdsaWdp YmxlIChkaWZmZXJlbmNlcyBvZiBwZnQgWzFdIGFyZSBkb21pbmF0ZWQgYnkKbm9uLXJvb3QgbWVt Y2cgY2xhc3NpZmljYXRpb24pOgoKICAgICAgICAgICAgICAgICAgICAgICAgIG5vY2csIG5vcGF0 Y2ggICAgICAgICAgICBjZywgbm9wYXRjaCAgICAgICAgICAgICAgbm9jZywgcGF0Y2ggICAgICAg ICAgICAgIGNnLCBwYXRjaApIbWVhbiAgICAgZmF1bHRzL3NlYy0yICAgMjczMzY2LjYzMTIgKCAg IDAuMDAlKSAgIDI0MzU3My4zNzY3ICogLTEwLjkwJSogICAyNzM5MDEuOTcwOSAqICAgMC4yMCUq ICAgMjQ3NzAyLjQxMDQgKiAgLTkuMzklKgpDb2VmZlZhciAgZmF1bHRzL3NlYy0yICAgICAgICAz Ljg3NzEgKCAgIDAuMDAlKSAgICAgICAgMy44Mzk2ICggICAwLjk3JSkgICAgICAgIDMuMTQwMCAo ICAxOS4wMSUpICAgICAgICA0LjExODggKCAgLTYuMjQlKQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZywgbm9wYXRjaCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNnLCBwYXRjaApIbWVhbiAgICAgZmF1bHRzL3NlYy0yICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDI0MzU3My4zNzY3ICggICAwLjAwJSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMjQ3NzAyLjQxMDQgKiAgIDEuNzAlKgpDb2VmZlZhciAgZmF1bHRz L3NlYy0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44Mzk2ICggICAwLjAwJSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjExODggKCAgLTcuMjclKQoKT24gbGVz cyB0YXJnZXR0ZWQgYmVuY2htYXJrcyBpdCdzIHdlbGwgYmVsb3cgbm9pc2UuCl0KCkkgdGhpbmsg aXQgd291bGQgbWFrZSBzZW5zZSBpbnNlcnRpbmcgdGhlIHBhdGNoIGludG8geW91ciBzZXJpZXMg YW5kCnN1YnNlcXVlbnRseSByZWplY3QgZW5hYmxpbmcgb24gUFJFRU1QVF9SVCAtLSBwcm92aWRl ZCB0aGlzIHBhdGNoIG1ha2VzIHNlbnNlCnRvIG90aGVycyB0b28gLS0gdGhlIGp1c3RpZmljYXRp b24gaXMgcmF0aGVyIGZ1bmN0aW9uYWxpdHkgc3BsaXR0aW5nIGZvcgp0aGlzIFBSRUVNUFRfUlQg ZWZmb3J0LgoKPiBBcmUgdGhlcmUgcGxhbnMgdG8gcmVtb3ZlIHYxIG9yIGlzIHRoaXMgcGFydCBv ZiAid2UgbXVzdCBub3QgYnJlYWsKPiB1c2VybGFuZCI/CgpJdCdzIHBhcnQgb2YgdGhhdCBtYW50 cmEsIHNvIHYxIGNhbid0IGJlIHNpbXBseSByZW1vdmVkLiBPVE9ILCBteSBzZW5zaW5nIGlzCnRo YXQgdGhpcyBjaGFuZ2UgYWxzbyBmaXRzIHVuZGVyIG5vdCBleHRlbmRpbmcgdjEgKHRvIGF2b2lk IGRvdWJsaW5nIGVmZm9ydCBvbgpldmVyeXRoaW5nKS4KCk1pY2hhbAoKWzFdIGh0dHBzOi8vZ2l0 aHViLmNvbS9nb3JtYW5tL21tdGVzdHMvYmxvYi82YmNiOGIzMDFhNDgzODZlMGNjNjNhMjFmNzY0 MjA0OGEzY2VhZWQ1L2NvbmZpZ3MvY29uZmlnLXBhZ2VhbGxvYy1wZXJmb3JtYW5jZSNMNgoKZGlm ZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBiL21tL21lbWNvbnRyb2wuYwppbmRleCA0YTdiM2Vi ZjhlNDguLjdmNjRjZTMzZDEzNyAxMDA2NDQKLS0tIGEvbW0vbWVtY29udHJvbC5jCisrKyBiL21t L21lbWNvbnRyb2wuYwpAQCAtMTA2LDYgKzEwNiw4IEBAIHN0YXRpYyBib29sIGRvX21lbXN3X2Fj Y291bnQodm9pZCkKICNkZWZpbmUgVEhSRVNIT0xEU19FVkVOVFNfVEFSR0VUIDEyOAogI2RlZmlu ZSBTT0ZUTElNSVRfRVZFTlRTX1RBUkdFVCAxMDI0CiAKK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNF KG1lbWNnX3YxX2V2ZW50c19lbmFibGVkX2tleSk7CisKIC8qCiAgKiBDZ3JvdXBzIGFib3ZlIHRo ZWlyIGxpbWl0cyBhcmUgbWFpbnRhaW5lZCBpbiBhIFJCLVRyZWUsIGluZGVwZW5kZW50IG9mCiAg KiB0aGVpciBoaWVyYXJjaHkgcmVwcmVzZW50YXRpb24KQEAgLTg1Miw2ICs4NTQsOSBAQCBzdGF0 aWMgYm9vbCBtZW1fY2dyb3VwX2V2ZW50X3JhdGVsaW1pdChzdHJ1Y3QgbWVtX2Nncm91cCAqbWVt Y2csCiAgKi8KIHN0YXRpYyB2b2lkIG1lbWNnX2NoZWNrX2V2ZW50cyhzdHJ1Y3QgbWVtX2Nncm91 cCAqbWVtY2csIGludCBuaWQpCiB7CisJaWYgKCFzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZtZW1j Z192MV9ldmVudHNfZW5hYmxlZF9rZXkpKQorCQlyZXR1cm47CisKIAkvKiB0aHJlc2hvbGQgZXZl bnQgaXMgdHJpZ2dlcmVkIGluIGZpbmVyIGdyYWluIHRoYW4gc29mdCBsaW1pdCAqLwogCWlmICh1 bmxpa2VseShtZW1fY2dyb3VwX2V2ZW50X3JhdGVsaW1pdChtZW1jZywKIAkJCQkJCU1FTV9DR1JP VVBfVEFSR0VUX1RIUkVTSCkpKSB7CkBAIC0zNzU3LDYgKzM3NjIsNyBAQCBzdGF0aWMgc3NpemVf dCBtZW1fY2dyb3VwX3dyaXRlKHN0cnVjdCBrZXJuZnNfb3Blbl9maWxlICpvZiwKIAkJYnJlYWs7 CiAJY2FzZSBSRVNfU09GVF9MSU1JVDoKIAkJbWVtY2ctPnNvZnRfbGltaXQgPSBucl9wYWdlczsK KwkJc3RhdGljX2JyYW5jaF9lbmFibGUoJm1lbWNnX3YxX2V2ZW50c19lbmFibGVkX2tleSk7CiAJ CXJldCA9IDA7CiAJCWJyZWFrOwogCX0KQEAgLTQ4MzEsNiArNDgzNyw4IEBAIHN0YXRpYyBzc2l6 ZV90IG1lbWNnX3dyaXRlX2V2ZW50X2NvbnRyb2woc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9m LAogCWxpc3RfYWRkKCZldmVudC0+bGlzdCwgJm1lbWNnLT5ldmVudF9saXN0KTsKIAlzcGluX3Vu bG9ja19pcnEoJm1lbWNnLT5ldmVudF9saXN0X2xvY2spOwogCisJc3RhdGljX2JyYW5jaF9lbmFi bGUoJm1lbWNnX3YxX2V2ZW50c19lbmFibGVkX2tleSk7CisKIAlmZHB1dChjZmlsZSk7CiAJZmRw dXQoZWZpbGUpOwogCi0tIAoyLjM0LjEKCg==