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 C0AA4C77B70 for ; Mon, 17 Apr 2023 11:55:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 479888E0003; Mon, 17 Apr 2023 07:55:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 42A498E0001; Mon, 17 Apr 2023 07:55:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2F1D88E0003; Mon, 17 Apr 2023 07:55:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 226158E0001 for ; Mon, 17 Apr 2023 07:55:38 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E0A44405C0 for ; Mon, 17 Apr 2023 11:55:37 +0000 (UTC) X-FDA: 80690728314.04.854A7E2 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf06.hostedemail.com (Postfix) with ESMTP id 1ECED180011 for ; Mon, 17 Apr 2023 11:55:35 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=YOBGao3G; spf=pass (imf06.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 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=1681732536; 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=hAfhUM23NLqVvA/6Hxfd6Xgc8oePCVqguK6TK2m4xx0=; b=SnTstxcFvg/t7+FzgzrAj8nzHj52ZsyeS1bBA5IE0YE9rPjifddmC/exRsfKa3AAWLLcOO Ti+oD8BCdwlXYGMX2N41UaapET3kzGcJ5lq+6UyPskeCxoUjTN9bcm2wdfi5OYG8L3Qlpr qxMaZZUwcDya7fr7Jsn3Ww0H0rw6v0M= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=YOBGao3G; spf=pass (imf06.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681732536; a=rsa-sha256; cv=none; b=A4uJQ6My/Ac3UtTbxTEGXGmc4YQI/MwrbtgPUXfoLINZ2pV2jqgEjK/VkryCSV5kWYmsZc 30SKckyCV//n6x68Ym8DLx5uHNMkcpIwOkyMT7xZx2ApfPyXEpN0/EQMVs8pQ7vQeTb0q4 LlkibsL3ZRy5+/Baclo5a0kFo4tTTwY= Received: by mail-ej1-f49.google.com with SMTP id dm2so63488898ejc.8 for ; Mon, 17 Apr 2023 04:55:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1681732535; x=1684324535; 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=hAfhUM23NLqVvA/6Hxfd6Xgc8oePCVqguK6TK2m4xx0=; b=YOBGao3Gh4rsypVOuHoE1ytvu3v+zzuIisiDjA+pAPLUyn2lc4W2y580wM0QGqDuBK t2E4fbgVIhzJkdNrXON9Fk4ppV/G0uJJY87Mggs8FmMDwvTtrBjmQayh9K/oWmrRXfDT w3OPKIPguHHmcs76WPPVys//oHx3UrhionPHUQHviOENI+JaZF1M/wpgoGXe0OqwfSVJ amMjGmlYHvk2HrrkdEj7F2j2V2hoSumB9UuA9pw4ITvpp7IPm19MV3XM8v0gk3ZoHHlA 4y71YZlBrpzkXhBU69R8xFtV1gn1I/z2Ufb4CZ7Dh1rW6T7kjFc6InE6Cpgq/99EkcVp jAwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681732535; x=1684324535; 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=hAfhUM23NLqVvA/6Hxfd6Xgc8oePCVqguK6TK2m4xx0=; b=bNCdMgcGvOXu1+VlX6+fT9gnX8JfmwiUY14ARwiNk8z3odDmd5gsv2hWthF8yVT2M1 WeAfuJf2Zftrzqumnyv3e/74BX283zItn4pmXoViUiUdhVO9c2/ySolP0CrOU7KLvGHj z+jaF+t392J2xs7w7LqXaXWsdUFyTf1yji00jaWlqPYviEuJFE61jccm7AbS3fiWMWt0 gKMXTHyFKYLlcGzUeVE8D+aeJM4ggr/zCHkO0NWoqDOMLrmv5vGRztx1e95o904+oESs bwcVVRqfGH7jdvkRSdgCT0WMeiM3AuL6L9CVx3NLY2wCeQ5D/cjcHenilc1n+Go5UlEW ZU9Q== X-Gm-Message-State: AAQBX9drltKqhppJmCUSWlRC4RZVDvcAhKtF8/EIt+2GbZIMLOqVd+H5 ZaWwyKjeAlMeSBW0dtndkaFqTFnjDpEk/lU0NI7oDQ== X-Google-Smtp-Source: AKy350Y5hBUoVr9Q+rVltKOFfeaVq+COPSzaOmznVTOL8PIWcXm7nigxXo7jRIinYg1V6Jm9LgrUetXlRewKTi7ttcs= X-Received: by 2002:a17:906:2656:b0:94e:5f2a:23fe with SMTP id i22-20020a170906265600b0094e5f2a23femr3568963ejc.5.1681732534659; Mon, 17 Apr 2023 04:55:34 -0700 (PDT) MIME-Version: 1.0 References: <20230403220337.443510-1-yosryahmed@google.com> In-Reply-To: <20230403220337.443510-1-yosryahmed@google.com> From: Yosry Ahmed Date: Mon, 17 Apr 2023 04:54:52 -0700 Message-ID: Subject: Re: [PATCH mm-unstable RFC 0/5] cgroup: eliminate atomic rstat To: Alexander Viro , Christian Brauner , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 1ECED180011 X-Stat-Signature: oqhy67tq9td3jk764ebjt6hjgaawt9jd X-HE-Tag: 1681732535-83375 X-HE-Meta: U2FsdGVkX1+QWAYg0h3OepJ1Roi0ADXrU/bu1AUvTOuU3h8++KHttXDrcB72w0kr7kEfs3nm6qNWEBFSOqz//CkV67MhmOmx7htKjAEJXeh9Sq+3fDuiCx4j+c6hyFEB9jb0+O7OGY5yx9e3cG3QFdPVMpt6K7u+CaN227f9U2GFTKWCQDNcHn+bn55Rq19caJ5IpUUDFH4vms/l8op71DY949bEp3TWxuWeQ2Yxh9O+KkzeRxCpPXxpxdoH2uso6drkLDT6Wo8GN6lupZm0n5y1grBG+KIKljqx2ARcp7FgPQw3Q2PEMULTWiCEkExd4fkNnOrpvN72RHTVaREk3vVE6l0B3YTAjWSRkl9ye/6k7+AerGeep2PupGvaZpwoBlb7MwC4Ki+4+zTSfG5X17YtrILOOEn9KKgDXTwopWjhzdkP6PIGCCI1uMSASaWKfasjb6les12oFq0Onky1ispheikylm2a6CdeLXGdcr2Ers2w4T5ES3hKsU1c0AFeYW+IpMGsuZVP0IjynXXXoIGuEVNFuLx4AMQirNIsoLxafMMQas2C/KJ8soNqwKgMycrkuq8uRwWf1Wnvtnqwp+sss+l6d9GMYqyERkg5xFrd8lqV+L8S1YXKmS41Wx7lnn07BUHBDujI1rxntYTGa/DW0aTnDhux7XYnTX6BkbuUcaby19DpmPHehUY+CNsxgxupZC6QSSl9yLtSOJ31VjTagWd/tDiyGahuapF8l7Th09+An2TOb0psoZvYEeSYXeZ5LODlIXZTlvl7j9DV81oaeHqE2LbSbaSOweIFzHuAr7/7S/XeYiLLku9hrNo0D5lQ0csYdtLNDfxW49tCNRVlXlb7C8ahovwJIzYmNx2gihG10+dir+DnJ1r1zVIG7fVJbJaDaJeU20sZWQyUwoY81w2raHi9mMK28IwagntDF8Xd+Kj3EOzR21qzvsBLZNk8B1tnUos0roVJ41K 20Gu+iBH 7h4qMjEa0OxHn3D1OeikRm9EiHxBpQ/AcDddqVhCGIy7qt2T5i2xeHFPh0wBPrR7CLOAK66/erbvy9fUThGPnSNhkah4cAJMJLRXhL1Pn5At8VyL7FlsV4aG+CYnOG95sgj9A7pVR1N+OfLC8SUOqlliuvuKb1ljSqVqw8MrVbszBfgZBAl+h+nMw9aGyGUQf6Dn+VItg273W1yr5uxLmpAeydgZ8a6ouGA+3/wMs0NY+TYPgIQ+BWA0Om5MYJWWDLTvugXVx6cPv6Bw= 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: On Mon, Apr 3, 2023 at 3:03=E2=80=AFPM Yosry Ahmed = wrote: > > A previous patch series ([1] currently in mm-unstable) changed most > atomic rstat flushing contexts to become non-atomic. This was done to > avoid an expensive operation that scales with # cgroups and # cpus to > happen with irqs disabled and scheduling not permitted. There were two > remaining atomic flushing contexts after that series. This series tries > to eliminate them as well, eliminating atomic rstat flushing completely. > > The two remaining atomic flushing contexts are: > (a) wb_over_bg_thresh()->mem_cgroup_wb_stats() > (b) mem_cgroup_threshold()->mem_cgroup_usage() > > For (a), flushing needs to be atomic as wb_writeback() calls > wb_over_bg_thresh() with a spinlock held. However, it seems like the > call to wb_over_bg_thresh() doesn't need to be protected by that > spinlock, so this series proposes a refactoring that moves the call > outside the lock criticial section and makes the stats flushing > in mem_cgroup_wb_stats() non-atomic. > > For (b), flushing needs to be atomic as mem_cgroup_threshold() is called > with irqs disabled. We only flush the stats when calculating the root > usage, as it is approximated as the sum of some memcg stats (file, anon, > and optionally swap) instead of the conventional page counter. This > series proposes changing this calculation to use the global stats > instead, eliminating the need for a memcg stat flush. > > After these 2 contexts are eliminated, we no longer need > mem_cgroup_flush_stats_atomic() or cgroup_rstat_flush_atomic(). We can > remove them and simplify the code. > > Yosry Ahmed (5): > writeback: move wb_over_bg_thresh() call outside lock section > memcg: flush stats non-atomically in mem_cgroup_wb_stats() > memcg: calculate root usage from global state > memcg: remove mem_cgroup_flush_stats_atomic() > cgroup: remove cgroup_rstat_flush_atomic() > > fs/fs-writeback.c | 16 +++++++---- > include/linux/cgroup.h | 1 - > include/linux/memcontrol.h | 5 ---- > kernel/cgroup/rstat.c | 26 ++++-------------- > mm/memcontrol.c | 54 ++++++++------------------------------ > 5 files changed, 27 insertions(+), 75 deletions(-) > > -- > 2.40.0.348.gf938b09366-goog > Any thoughts on this series, anyone? :)