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 69AB8C76196 for ; Thu, 6 Apr 2023 18:23:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF9966B0071; Thu, 6 Apr 2023 14:23:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E83C86B0074; Thu, 6 Apr 2023 14:23:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CFC786B0075; Thu, 6 Apr 2023 14:23:57 -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 BCA366B0071 for ; Thu, 6 Apr 2023 14:23:57 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 8FA8281339 for ; Thu, 6 Apr 2023 18:23:57 +0000 (UTC) X-FDA: 80651790114.10.F4A7B36 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf20.hostedemail.com (Postfix) with ESMTP id 0CAB71C0006 for ; Thu, 6 Apr 2023 18:23:54 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Jnrx0cHE; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf20.hostedemail.com: domain of tim.c.chen@linux.intel.com has no SPF policy when checking 192.55.52.151) smtp.mailfrom=tim.c.chen@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680805435; 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=lZDJHtj4ZdvJcDQ5TOp/nyb03vogrfzZp2ItB5B/rlA=; b=EGsD4Q2b4K9CJAXnKYDVnlRPCf/0I4NgNpSB5+CMFun4kulO67nrIkZVds+9g8lm+s6/Ev 8571feM6rMlcmR09UdeR5Z8Il42HhQI+/BUTtteBlEEhon20sb6mpwrUHdAAzrLjWl8mmv 0CjBDsXbklmKO4i4L8qan9DvWK8iQGQ= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Jnrx0cHE; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf20.hostedemail.com: domain of tim.c.chen@linux.intel.com has no SPF policy when checking 192.55.52.151) smtp.mailfrom=tim.c.chen@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680805435; a=rsa-sha256; cv=none; b=Rz9fX+9kIxT+QUteeJHGU7KkdxbwG7hPZ99iP407a4E9ecQZsTScTJ8r6G24zldMx3QdkP t5A08lGxfEnA24Hw7FRUFqgCHA21b8ECOJi7DLhycmNpZ6TV3gEos5eBrygr25lpFyBgfU HIkI2ih3G+0NZ6I6dSpadNiOMDmu25w= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680805435; x=1712341435; h=message-id:subject:from:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=rQafWPpN6SSrt4t7Qo2/D4943r4B6SApT9bspraHldI=; b=Jnrx0cHET1cnj4Dqt+o+TOHn/SS/23Hb0zwrKdq1oF20RrEc3aEFQvQa xx9+Y3aDOXffk7pNDVR4kx6RSYnflU5En7ckrxSj94BEPJ5PmCXF5tpbf BdljNckCzd4PklYsXzAGbuBX6uSkof4jZQc8I99YENOJ/VIy2yQE+CVP9 AaDUW5Y/BCId3tYEY9zSTiEk51yosakx7cOqYKe4Hd/wSktbeWUlMPmvb 3KAR1O5XNuaBYA9cpe302MiuLLEU7OQ9SAIsEIBnL0dTaqyZKXB1t2r2a 59F4pJBU1AMKQ/SvDMU0g/t3R0VHsuDd44pFNBN5XRYHzmpjSxsadWNGM g==; X-IronPort-AV: E=McAfee;i="6600,9927,10672"; a="323184550" X-IronPort-AV: E=Sophos;i="5.98,323,1673942400"; d="scan'208";a="323184550" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2023 11:23:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10672"; a="664576653" X-IronPort-AV: E=Sophos;i="5.98,323,1673942400"; d="scan'208";a="664576653" Received: from ticela-az-114.amr.corp.intel.com (HELO [10.251.3.106]) ([10.251.3.106]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2023 11:23:46 -0700 Message-ID: Subject: Re: [PATCH mm-unstable RFC 0/5] cgroup: eliminate atomic rstat From: Tim Chen To: Yosry Ahmed , 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 Date: Thu, 06 Apr 2023 11:23:47 -0700 In-Reply-To: <20230403220337.443510-1-yosryahmed@google.com> References: <20230403220337.443510-1-yosryahmed@google.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4 (3.44.4-2.fc36) MIME-Version: 1.0 X-Rspamd-Queue-Id: 0CAB71C0006 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: xw7rpimk4jtdshd7ibx9zzuias57d1ac X-HE-Tag: 1680805434-24447 X-HE-Meta: U2FsdGVkX1+qzeiFePkIC8DSQevmodEsDtW7mavMtTeo0rt6bECR5ztxnG7fbLjypAQIKC/yPgTZx9MUVPVV2vcFbTroNEinIBUtSPRp3SJbJxT7Utt0JDd34lxy5MCOq8q21VvvAQqZ7KwA+OBrQxxUx032tF8yJGN7chOBtZUDEnR+U4LApUBFvDHTF5gTxE2w6Rmum9UK3U0vsbxiBNmZrXJTSUbBx5Nsi4iT0wVK/7XK3dAqK6jR9Z0SWignOwnO7BMLFOleU5BULbnXl5EPNBgkP7s/Y0/75j7Dby4f6puwsZVF4TmYpW6khiyCAqVOF3dCKYHGjzRRTEbl9RXgkIDZlTtMt2YKixab5LmIfOic9+DHWchqS2vX+4wJrNUKKKT5REGLTF1off0LhWSIopwouAlxMl5got3afvfxzHDNalOBJAcRi0FccNjoEadrzFrrHFPolZD3CUk8Bck6kgAwJt1crjjhWKpJCeNVJrolchQPHCQU9a9OcUMMMPTIVwd+ok+vMEaZdbMUy3GrYfuxNlLk+cWknzccxUMsGJ+N9JjxnrDhG0NEwOdC3caE+a+SuR2AWJXNFu8A2CIhSE/jL+YXvqADZzbzZE7w8WVbJ0YykXz3Ovo6v+7Zfg0ILJfH5EUPXf82N9Gt1liMs0Db1OXp0W6DJ/RPl8blwnvsNneGx6MmglBQW0rdHEHRJ3GAplmp1JihlMVLm2Al2V3ELE4G3aVbrSRocXu3bXett2VTWgb4GOUre1R+Oy9w98vY+e4nz/4i5ILa134ujwgrlZCn2L6bDUfvGIDMiDd5M1F3q5sK3nH+UM7ARFuP3FQmIwxI2qTnaAUwonevLQ9RxO9MVBUAA0UesxP6EmhTFCZVgLEX5oGryyokZ5IobKrI2coJgG4hr3hjflXDweXHifm5dcrHBTYyGm2GOe7UpYJHso/tjQbkt5e4c9AK05Huk/kymA7hB20 xdDzpx6A TVmtAAdXFDsPtIrQ3l8d7n79Jhuf8up1yqrBgSy4XuHrLrcNu+FLa6u2Ge+6RvbCTo7aVuZpGlXA4FrrGQRbyhOLDE+OUao4n06b/gFVy7Kaefm2T5IvflpcmSQPzSgrSi3CILHVbomfA6W+uHJHvDM0xTA== 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, 2023-04-03 at 22:03 +0000, Yosry Ahmed wrote: > A previous patch series ([1] currently in mm-unstable) changed most Can you include the link to [1]? Thanks. Tim > 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. >=20 > The two remaining atomic flushing contexts are: > (a) wb_over_bg_thresh()->mem_cgroup_wb_stats() > (b) mem_cgroup_threshold()->mem_cgroup_usage() >=20 > 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. >=20 > 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. >=20 > 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. >=20 > 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() >=20 > 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(-) >=20