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 22204C6FD1D for ; Thu, 30 Mar 2023 07:44:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A5526B0072; Thu, 30 Mar 2023 03:44:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 955BE6B0074; Thu, 30 Mar 2023 03:44:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 845566B0075; Thu, 30 Mar 2023 03:44:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 72BC96B0072 for ; Thu, 30 Mar 2023 03:44:50 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1A42F80F39 for ; Thu, 30 Mar 2023 07:44:50 +0000 (UTC) X-FDA: 80624777940.09.4A9B5DF Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf04.hostedemail.com (Postfix) with ESMTP id 45AD24000F for ; Thu, 30 Mar 2023 07:44:48 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="XC/JQkgU"; spf=pass (imf04.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.54 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=1680162288; a=rsa-sha256; cv=none; b=1sttOLV1XjWvlslLgCONogQWO/IIUS9yEx/jHo8eM6BolYIBs8I3vFuwA/G2P73PhOQ2HU vgyWZSCiV0UAlBp6vFngZ17sEmVjm1taVY+DSEKvKcWlGdTavmAYh+Qr8zXfkAP9IvXenM qibaU6awOdMqsIdON4DEzSMUmrCUBWg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="XC/JQkgU"; spf=pass (imf04.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.54 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=1680162288; 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=28SBvYRFwm/SwjBANXWTAMmx79zC2hxmQLZYCOkhW7w=; b=57lABai5EUWqHCLQCZB9jFxzp4LlbEk+Wa4jrbbvJmwnKfsmP/GKYlCdspv2bqD8qPMjlZ NswihFeRku4WDuNEbe1zR0KQYddVjHm3Xgupki9DWDdoitFbZH4aAMTKyDB0aHQ3pW8hN7 tkF8t9oKMCiR/1eJDdyP9XM5zzWCc4g= Received: by mail-ed1-f54.google.com with SMTP id ek18so72990607edb.6 for ; Thu, 30 Mar 2023 00:44:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680162287; 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=28SBvYRFwm/SwjBANXWTAMmx79zC2hxmQLZYCOkhW7w=; b=XC/JQkgUrkQzY6HHF2NhZnpoRWT+0wS9HXMuIuwQTp9rKch4Ytd7OHq7B6ZlYzmoIN Xe41PjKT72i8B3/cXTSXEg1IQnDraLRQMJMHYetoWWGjFqE2CxvPrvXHNDWgl87bYMsh WdwVVICevoPuzBNIHuJDvQJT1mrphxjAYc2j6LK0KPxJhcnJrlmseiUrxuyv1lwNRTJp +FSGoMUedD4yHquuhjfw7Y6nZWzvHcf/ctNL4xVIvIW4rnVlbcVv+Of3qtdTGXL9EZos GIk26f60XOLEveR9GlABACeWhYk6kSbAGJ2+4SHw417+h1IQRhKDpuqZ5Zdtzx5YFgxE fTzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680162287; 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=28SBvYRFwm/SwjBANXWTAMmx79zC2hxmQLZYCOkhW7w=; b=yXNDqMkUmhDbXzjr4BviuT1cQzCDtJeaWxJxtMzF8SS3eJQCeRIk67UNCB/0NorkIe ULXkAN5eyfkMtDaFNdbkPRL2JgHaXfJM+oups1d0nswkjfrWKu9oU/CMsGy6WkePQjL1 SJP1HD93V1OYBB+cL44vgaWFAmXTbwr53iUMcYX93+HTNrBEWX+UL4PL9vOmF6Yer3+h H3yoDhuUUJ3hE5OzGX2bJwMlkqdMv312P//Zpa49seFE4TIvQODz9Q6dhyYperbOKV2T 86ZWO6BQQb4zAJwBj9UJ1lMDTn62jRZhpkqyPg79KoeNXTORHHv4TnAshXzRiY5jZ+Ls EqiQ== X-Gm-Message-State: AAQBX9f8tITdAGox8HY0YIRzSBaAd5gBYzA2NQMxsMkFEwplabWnMAx+ A5749uec4zGCtAw/EY01ETN9CVQjiur0h+4S6q/fFg== X-Google-Smtp-Source: AKy350Z2KiVhFd/82j7EL2NLG85NtAr3M5UdBgwY+5zjpWCG5Fmbo31OIzhdc+eigDSu41dkZqEu1wLkOLOe8mIznuc= X-Received: by 2002:a17:906:a86:b0:933:f6e8:26d9 with SMTP id y6-20020a1709060a8600b00933f6e826d9mr11660266ejf.15.1680162286676; Thu, 30 Mar 2023 00:44:46 -0700 (PDT) MIME-Version: 1.0 References: <20230328221644.803272-1-yosryahmed@google.com> <20230328221644.803272-9-yosryahmed@google.com> In-Reply-To: From: Yosry Ahmed Date: Thu, 30 Mar 2023 00:44:10 -0700 Message-ID: Subject: Re: [PATCH v2 8/9] vmscan: memcg: sleep when flushing stats during reclaim To: Michal Hocko Cc: Tejun Heo , Josef Bacik , Jens Axboe , Zefan Li , Johannes Weiner , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Vasily Averin , cgroups@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 45AD24000F X-Rspamd-Server: rspam01 X-Stat-Signature: 4497w5m1ezt7mykhx9snp5ez36z6y4xp X-HE-Tag: 1680162288-823427 X-HE-Meta: U2FsdGVkX1/PsOpSBFu/feI5bb/2RTj5jz27LzWIOqHcAC2RkImF8prg6WDDPkAwMafiKammHYlr89rOCMBzkrRMokUEKyKmw8RYdi8oRLdYbegFOkKqpAmXVynBqRwpUl6aN133NAWvT+swcvh2kOEVhiYBM7dSeabeb6B7tPFulxlhRJcW9bHFa+k2SgZcWQnghEKhtKYyXK7CiAJWz1wfUYPfnDW+UO6KzXltb7E28SGnphooyqIFfJVkVEicBGeaGO3L3DCDpSL6myYJAOuldRxQEHbmy9WvLBSkpQgmhP0SZ4dYj5XxRPE9cbUQusgth/gvXI/ySBrkzqYvZV+4ghzUn7hUyUHa1AC4xvU2R9Tk9FAwdzB+YCaTkJwmTyFw7554Q3++YVgzKaeQYKzHtojmB9tKryNC7posPoYQDotI+oKCCApcKC9NIy1i+dMOXlcC2kAezw74AhGuwmgh0zkteZveV2tCnG0Zy3GR054qfSjgi64MtM8CRywioym1E8DJ4mv61PGXkM84tjgNXHZWaRpPb1Ize//OKKfkSn73IfYwa9kqkOSqyDJZF+8mHWlhP4ajjke76eLOjpEqixyP1V9fqq/A/xrTarwHcsxWUidUJ9VSpdISDKIM3wHa2s7wuCLQGJxT1plfUA+yQXxS/M+Vauw4cmUt/fYtYZkMjk58sGEEjV3ajTPAJor5CBBFTVs3fNhu0qLuVpwQSHPvWUI2nvejwtW1qKunh6J5SQ0R/ef++t7zDaOvFFMhedRgGtHjNF6f18vr5pQQ85KnQ22gi1QE0cu/CWsQCiKVaBI6SUsM+Ia7uYeFaL/dPdEPEW6yB6fuVlAJJVR6n4MGdCLo+j2O0eGlETDKHTG4AxVmrdZySQN1Lp36Ck+h5O7+6avV9w626lzClO4x6g9cSgovLa1WYIwqx2yuvdaUBA9z+UHWaVajWvyrrIUXqK49WpiBIEyAYk4 W5V9wJnB Xke7sVJwTum96my1GjKmoQvi/8OE5E86dEICZ48YZ9/ow7UW8g2gCytXT6DhjaC/bjvDE/z1jnstnp+INPcdnjYcW3kc0xYbxLJkdAQtIXSiQ323NgSXrlHbb3kSEMNlBcxo5CDzDPRhZmYoN67IbQYQLG0XDv5WpwK9zo2d9CIe1aUKyTIDreWHmDyprRl+aTMKl36f7sL15+H+TKq4jb3UvORWZWhhLHorbmsPwC8VvmzWQqjSJOoro/Exb5w4dghZl+9QkBKICaR8YJl+Nx+NNQOBUbmVg1sbgarDumhKYWlx6Vv+Pl0Ci8UhtZxdF4ArmboK/nKMF9iWwUP5Yr0BDpa4KhhbOeAIBlGWIDe/3RpVK4uMetZ0pjVBiDwT6lDA2 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 Thu, Mar 30, 2023 at 12:40=E2=80=AFAM Michal Hocko wro= te: > > On Tue 28-03-23 22:16:43, Yosry Ahmed wrote: > > Memory reclaim is a sleepable context. Allow sleeping when flushing > > memcg stats to avoid unnecessarily performing a lot of work without > > sleeping. This can slow down reclaim code if flushing stats is taking > > too long, but there is already multiple cond_resched()'s in reclaim > > code. > > Why is this preferred? Memory reclaim is surely a slow path but what is > the advantage of calling mem_cgroup_flush_stats here? The purpose of this series is to limit calls to atomic flushing as much as possible, as flushing can become really expensive on systems with high cpu counts and a lot of cgroups, and performing such an expensive operation atomically causes problems -- so we'd rather avoid doing it atomically where possible. > > > Signed-off-by: Yosry Ahmed > > Acked-by: Shakeel Butt > > Acked-by: Johannes Weiner > > --- > > mm/vmscan.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/vmscan.c b/mm/vmscan.c > > index a9511ccb936f..9c1c5e8b24b8 100644 > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -2845,7 +2845,7 @@ static void prepare_scan_count(pg_data_t *pgdat, = struct scan_control *sc) > > * Flush the memory cgroup stats, so that we read accurate per-me= mcg > > * lruvec stats for heuristics. > > */ > > - mem_cgroup_flush_stats_atomic(); > > + mem_cgroup_flush_stats(); > > > > /* > > * Determine the scan balance between anon and file LRUs. > > -- > > 2.40.0.348.gf938b09366-goog > > -- > Michal Hocko > SUSE Labs