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 DB58DC3DA4A for ; Wed, 14 Aug 2024 23:49:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F04F6B0082; Wed, 14 Aug 2024 19:49:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6785E6B0083; Wed, 14 Aug 2024 19:49:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F1C66B0088; Wed, 14 Aug 2024 19:49:24 -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 311EB6B0082 for ; Wed, 14 Aug 2024 19:49:24 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id A8713161274 for ; Wed, 14 Aug 2024 23:49:23 +0000 (UTC) X-FDA: 82452495006.11.C992627 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf02.hostedemail.com (Postfix) with ESMTP id D7D4F80025 for ; Wed, 14 Aug 2024 23:49:21 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=W6hh0s4c; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723679289; 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=iR9toIBu65OWjI9Foi4Md7PGhS/0hqYEv1lXZk/IfmI=; b=7XEVjovJDbHucGZvOG3GWNxObYKle0oPZ+2gyeSV2rekT5sDIU8m/QV5CFfitz1mUUrD0W b/U/5+via49HyBx+2zoiUo+/niGYOxksDgix6drMzOOuF4Ps/Q+3MTiq6LOo4epAY34M/e HqArP6nQeAmr+HjCcuH5KKDXX6DjnJU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723679289; a=rsa-sha256; cv=none; b=UC5tDZWEyXU+A6gwewwpgKSrMKhu/hx/Vmg0SgoKXT3KN1WZN8nL41ESJbriVpY+qtuJku jdEP6Xm8yQw4gUUVUtVK0+ey4GDNb2zxEuVxGhp3qCRN4w/49x9i+G9NC/k99u52xb0js2 4MhsWPqX2oy7F1YGZbwJp7xmS4Zs21Q= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=W6hh0s4c; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a7d2a9a23d9so61042266b.3 for ; Wed, 14 Aug 2024 16:49:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1723679360; x=1724284160; 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=iR9toIBu65OWjI9Foi4Md7PGhS/0hqYEv1lXZk/IfmI=; b=W6hh0s4ct4DSqLWzeS4E9SwNXcweGVqWZa7DaUO1QqZVOg2ez6Q6Z9aFuRU3jgqq8s pl9byqExFhggvPHgGFPv8IMdhKEis26JkY90XeS+2SU2QptyjrOkG3dS19nDL8T2MR8e r7U+rquG4BDzX+3mw3wXoEdAjnwWN5NC5YEKBspovfIXbIaSYQvRvV+XtSVOiWzsDHtZ 7ENhMEgklHx99Y4QZ/DLJ40JSgMBiRhKqiGislDQ3u5Uzuv+lNW1RpaFjCZEyA9R3X1v l+eNXPiCQEPS595QsWBAKCN7VnlHWqMyEGBbMABUgqqR6iqwBXLjjWTv//rIOdum3t5t 08kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723679360; x=1724284160; 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=iR9toIBu65OWjI9Foi4Md7PGhS/0hqYEv1lXZk/IfmI=; b=P/HMpybp51zP5/w3BVbHcwSQLRKoNZfdGQAjSSanRKPdcHwW9S1+rSHIHIROpShabz lt9BkFw19hz+wmqn+9Z5n5PTaji0RiF7p1+gkvl/6CtqgXyddOY1rvQLDhqjHOok+ub6 qNOz9uZw/UF3wyvOpanl7ulmTV26EaC+jhLBbV/46WjQouMKB7Hz1s8dYJSe3iR+F1+8 OtS5QXKrQSPBJ/ZGenREgXtw0uCOxkO6ajheAkNHewTzUxYz02I6t2TqdiUJCqpuaOdM Bwp06aSmASBVlbSuu+IMVDuD43EWJ9nQIFJj3F+HLnXRQhFx5xbWb7L6lm9NEDQ19BaF 4hTg== X-Forwarded-Encrypted: i=1; AJvYcCV5yODMwaJ7lfvhpvGEAbft2a/c+DBzLOzHCxD14Q8BivO9hDYxG1ODPMbYK6RZU5QOeFyor0dShVpnk3bbwJbuJvs= X-Gm-Message-State: AOJu0Yws9iK262RraxHhwYvjQCDHGGCso/PrHd+eNBC6bzUH5K5inNCU hTgH0feltqmgdAdeNU/N+o/wDJYjNTYUpjP7s8akirwttjFwusS2JyY32dlfpGPGV/ozE6LsCGH Jnh1Gz4LZVe+rhpDe9vBaXy+nPgTBvNVTlH0i X-Google-Smtp-Source: AGHT+IFzAxfVcguQ92qXWa0puGpF0cYBqQh/zL+5WNiS/bI9UofldFxVGZQ+xQOXBxga06UZFh7sI+CLQDrboiRxSD8= X-Received: by 2002:a17:907:e697:b0:a7a:a2e3:3734 with SMTP id a640c23a62f3a-a8366d4424fmr281247866b.28.1723679359618; Wed, 14 Aug 2024 16:49:19 -0700 (PDT) MIME-Version: 1.0 References: <20240813215358.2259750-1-shakeel.butt@linux.dev> <5psrsuvzabh2gwj7lmf6p2swgw4d4svi2zqr4p6bmmfjodspcw@fexbskbtchs7> In-Reply-To: <5psrsuvzabh2gwj7lmf6p2swgw4d4svi2zqr4p6bmmfjodspcw@fexbskbtchs7> From: Yosry Ahmed Date: Wed, 14 Aug 2024 16:48:42 -0700 Message-ID: Subject: Re: [PATCH v2] memcg: use ratelimited stats flush in the reclaim To: Shakeel Butt Cc: Nhat Pham , Jesper Dangaard Brouer , Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Yu Zhao , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Meta kernel team , cgroups@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: jwt9ou4f5k343fwej1y35kjebyz391a4 X-Rspamd-Queue-Id: D7D4F80025 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723679361-930549 X-HE-Meta: U2FsdGVkX19SlaQ/K8dV5Cl0eDtL4JCGED1A4itD85n8vsicUG0FAfgjg5PjefIhPLmqtrevEy4YryvX6KckhAO0rGN574JrHlrJCCgZ3dp2qiWju1ie22Hb2FRKKD5VZiW7rCjH+qKkoJs+eqI8KVN096K4mD0v25ZVdcfkhjtTAdYu1SAM6OyvDAIhuaIY4cksvNywCQu9XS5y21AdBB9STwQ3T8ki/yRX1t44gU0CgBphpUvaUm8XP/r9Wy6NUrljYIkQdamQ+miriP6mvwzReGqDIe39m7cqJ6oXWhdI37M0ov0mIhsasY96YBXrk9ebdLb/TaU1ctk31g4t+ZCP7KEyWyd/xjTAj5uiSRREwNGfoLuikk0jMnEgtGglFwGKgZY0HnBy/DmrfcR75dJVYaaVZVrbbEtJNLKFQJAoxoPqKyoFgNWDiupgaTzQKKSS7DOh8k/+VYSEE0gaU3QZW5Jg2mJKbjfMvr+QqF8SUo45YmaGv04fBlg+e6PkprFCUVWfp8UUEXsqJcaj7fRlWg1nnTe+MBxE46vVK9Ytog3iayZ9r2eNQRyBEc3IrNxRik7rwZfPq76BvbCgbxM7tvF6NgETyCT0fT7x5R6yPCepA7clMg3I8SbVX6hNB2SJRlR3tfPANjuouID18YT/LSk+YkjflZAUUyN3A6lixbfgqYYxth4Txh1hF9AbdYdsKfYRAD7mwknKGE5P+Cm4tdd9w+odjI7rUztAgrYOlZosWTO6Q1wbKrhlyAErVYh3/giHENYTKFh58j7Pd/1jCK9Rxhssm70Clr1We/6bEQ6x77SoAkaO+djjOkkxby1Uc4A9Y8QJqDwfH54OGzYXAS+dWuIr4ttw5uYxtao0dniuRLr2c7usL4j3R85BB2iOGgjzMoX2i5T1DjgWVFD2VPwJWpUXwywKBKzWnB/B4iKIADV0ojZ1ZGs+47ibmLmXiLC3L39g6ybz8I/ k/oF+YK2 Kdk7L7tqHdvSvTdixZMRJuNoYqM5Rp4xaHGLOBNchbEzRTbHZz2rZeaL1Je6TyMDB3JooAVmZUDAOWSW1PzETtV1Z0FczPvzXHu0LnvZcDhO0eSx47MxJIA+ysBo/jti8PJQMb5JV4HTlUNnRTAwAwyH9V9TgkQp+BmMrSKKMiSPATOo= 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 Wed, Aug 14, 2024 at 4:42=E2=80=AFPM Shakeel Butt wrote: > > On Wed, Aug 14, 2024 at 04:03:13PM GMT, Nhat Pham wrote: > > On Wed, Aug 14, 2024 at 9:32=E2=80=AFAM Shakeel Butt wrote: > > > > > > > > > Ccing Nhat > > > > > > On Wed, Aug 14, 2024 at 02:57:38PM GMT, Jesper Dangaard Brouer wrote: > > > > I suspect the next whac-a-mole will be the rstat flush for the slab= code > > > > that kswapd also activates via shrink_slab, that via > > > > shrinker->count_objects() invoke count_shadow_nodes(). > > > > > > > > > > Actually count_shadow_nodes() is already using ratelimited version. > > > However zswap_shrinker_count() is still using the sync version. Nhat = is > > > modifying this code at the moment and we can ask if we really need mo= st > > > accurate values for MEMCG_ZSWAP_B and MEMCG_ZSWAPPED for the zswap > > > writeback heuristic. > > > > You are referring to this, correct: > > > > mem_cgroup_flush_stats(memcg); > > nr_backing =3D memcg_page_state(memcg, MEMCG_ZSWAP_B) >> PAGE_SHIFT; > > nr_stored =3D memcg_page_state(memcg, MEMCG_ZSWAPPED); > > > > It's already a bit less-than-accurate - as you pointed out in another > > discussion, it takes into account the objects and sizes of the entire > > subtree, rather than just the ones charged to the current (memcg, > > node) combo. Feel free to optimize this away! > > > > In fact, I should probably replace this with another (atomic?) counter > > in zswap_lruvec_state struct, which tracks the post-compression size. > > That way, we'll have a better estimate of the compression factor - > > total post-compression size / (length of LRU * page size), and > > perhaps avoid the whole stat flushing path altogether... > > > > That sounds like much better solution than relying on rstat for accurate > stats. We can also use such atomic counters in obj_cgroup_may_zswap() and eliminate the rstat flush there as well. Same for zswap_current_read() probably. Most in-kernel flushers really only need a few stats, so I am wondering if it's better to incrementally move these ones outside of the rstat framework and completely eliminate in-kernel flushers. For instance, MGLRU does not require the flush that reclaim does as Shakeel pointed out. This will solve so many scalability problems that all of us have observed at some point or another and tried to optimize. I believe using rstat for userspace reads was the original intention anyway.