From patchwork Wed Sep 13 07:38:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yosry Ahmed X-Patchwork-Id: 13382561 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 B8459CA5500 for ; Wed, 13 Sep 2023 07:44:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 20DC56B00A9; Wed, 13 Sep 2023 03:44:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 194C56B00B2; Wed, 13 Sep 2023 03:44:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 00F206B00B9; Wed, 13 Sep 2023 03:44:35 -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 DEF906B00A9 for ; Wed, 13 Sep 2023 03:44:35 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 93401B34D6 for ; Wed, 13 Sep 2023 07:44:35 +0000 (UTC) X-FDA: 81230786910.03.F5E1527 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by imf05.hostedemail.com (Postfix) with ESMTP id E1E2C100013 for ; Wed, 13 Sep 2023 07:44:33 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="en/rpe2E"; spf=pass (imf05.hostedemail.com: domain of 3DGcBZQoKCA8D376Dpw1tsv33v0t.r310x29C-11zAprz.36v@flex--yosryahmed.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=3DGcBZQoKCA8D376Dpw1tsv33v0t.r310x29C-11zAprz.36v@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694591074; a=rsa-sha256; cv=none; b=BNjkTmYZvRwiAIwGZ2pB7wChUoCWF/zJKsMvaYHqC33KWuGoD2jv+W/pHbq0mmXvNkN4ey Ka2v/MuxDB9cYBa0qWlP+qRoaIK30qL/V653iWpOGDMtSkZm4f3jSXfRwvHONoNVZACSFt fU9Afs0/hVK09gVz8mbUrCO8tcivU7Q= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="en/rpe2E"; spf=pass (imf05.hostedemail.com: domain of 3DGcBZQoKCA8D376Dpw1tsv33v0t.r310x29C-11zAprz.36v@flex--yosryahmed.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=3DGcBZQoKCA8D376Dpw1tsv33v0t.r310x29C-11zAprz.36v@flex--yosryahmed.bounces.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=1694591073; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JvedlnHbJ7Xvblewl93Q0+oTKItg5cpjvq/m6HrJuqg=; b=GVr6Xk18zpP04iFUaFA+e3JgJyNqqIWcKdrRc5F9lftnpBfUEevl+4y54PhLYgAnHWho3B DGWrSYDtaipGK3P8NYOAwZ+swCchmxGicXXa9HfQjulSRPBITu1gwLB7z28OR6oJPV/HXI QG1JDso5aGm8nuJz6DHSi7fXVsPv7IE= Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-68fb4e66ce0so4689313b3a.2 for ; Wed, 13 Sep 2023 00:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694591073; x=1695195873; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=JvedlnHbJ7Xvblewl93Q0+oTKItg5cpjvq/m6HrJuqg=; b=en/rpe2Ef4F2dbwblYl4hAwcyywv5SDTORpTIqWkV0Bo2AD8yughyBvXumQ5iX3ev0 dpauDXXilhP3ucrVM1lODbquONiHSMb6w4bLs4QWJaVDqCXaBdefVpDQCUfhBzABErxr bt2xMT056WLa7/jGZzj90rTdwM2Tcu6eFOEUEy4WeqzFrhqCQ+CIISYzOP58Y43c1Zns VEb8Gl1CPcwfhV/dXx4boP0Jp4xaCfqcH8mSp2bNmOFKWtBp/0peBo67P50Y5XMZg4r5 U91QtiyvdsW4ueZY/mFr0/KLUvFtFD474FAWZ0tQMjScDtJAC/NshToqtUVyKN89ilEI a4Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694591073; x=1695195873; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JvedlnHbJ7Xvblewl93Q0+oTKItg5cpjvq/m6HrJuqg=; b=M+AJnyhyQ/NZ+G4gt8X9l2f+pBZyUM/GxPXUt5iUHzWA2aKv6/zoatMksuNVrcEwJI S9pmAOEwiUgn2gzEYXKvxYZADK94HIH5QYUU9dr4zno5X9ZkPzs0S1z0//jYxtE8T7Nh l9asBPO1MypuD2+ewIwoSf0PSBBVyuu/m5zDyE4IAbCn+Hadb/dtyU8Me6OQD8tCKZxq wQ/e9/cLOigZlp/FilVRysi8nqGIEuqVhZzvYIKT70aBy2+1Mnf+Y6xdHQVkA16IRADX 8/IRyQ/qHbPfq3rePMjjjE5TJEl5GDTWRGSso1snb6cUBaI2Sce8X9SX5qH2YkqZIq8Q Ve5A== X-Gm-Message-State: AOJu0YxwIryQQrq7kK57VYSR5t4LQF2HPO2xLGleZF9AnU1/8sZgqUGQ GAs83mlscZWcffp3MCXA5lEGRkyry3IAMuGC X-Google-Smtp-Source: AGHT+IHlBNs2Mx/ZSSb+5tjW06WVFGJiIVkb2ZqOrPE3dU6m0k0diTK/q/q6GD3+gQB+u8r6mi7KeG2OWdyZrcyi X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a25:d393:0:b0:d7e:dff4:b0fe with SMTP id e141-20020a25d393000000b00d7edff4b0femr32185ybf.7.1694590732515; Wed, 13 Sep 2023 00:38:52 -0700 (PDT) Date: Wed, 13 Sep 2023 07:38:44 +0000 In-Reply-To: <20230913073846.1528938-1-yosryahmed@google.com> Mime-Version: 1.0 References: <20230913073846.1528938-1-yosryahmed@google.com> X-Mailer: git-send-email 2.42.0.283.g2d96d420d3-goog Message-ID: <20230913073846.1528938-2-yosryahmed@google.com> Subject: [PATCH 1/3] mm: memcg: change flush_next_time to flush_last_time From: Yosry Ahmed To: Andrew Morton Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Ivan Babrou , Tejun Heo , " =?utf-8?q?Michal_Koutn=C3=BD?= " , Waiman Long , kernel-team@cloudflare.com, Wei Xu , Greg Thelen , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Yosry Ahmed X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: E1E2C100013 X-Stat-Signature: sqwby9mybhbqt6br5ej4cp336x9u67ao X-Rspam-User: X-HE-Tag: 1694591073-626558 X-HE-Meta: U2FsdGVkX1/lAZPPSYX8GVXFPv2noyARQUVi820mOqpElfkpyT/6ZOImeQkLzZxaud9fVIXG57cUihzYkY5AI6APdq8DRqPDaGeVxLr/Vj4F4fr+pr6iDFYiBeKmIbTzkIlfjdlNsc39a78S9603DwhUKsqp5SEFwMn4Btg9/NWCNtM68b1TbRjicX/B1fFomSa5npv9lQ9QgLoii56jFv2aO7VVIEtGZKI4oeIBELVO8Mv+AFpvCPpd5kHu2qB/hYSqBTHEZ9k77KnSRSFS3WOZtqWy0i/5qJ0pbqsmn0dDwL6ke0wLjcUKa/I3liR5KTT+tDoV+ge85HH9vFzq882OOmoqmh7xgbHL9JNmSa2a8dS3+ZD4PN9vBlaCDSzMrOws+qED7WMevHe/TdCDcir1w4lPOH8dTczVj9MzpOtBf14u/HG+oI/hTLoI9CCfT4FlQLniUE34+3r8Bl0OWVbZF266F2Xm24h+s5h3fgRT9kRFZVe0QsqOoQ+9tBfQUxiyZ5FijwsndbmgbzTbAxCIqlsSfV5y9tPQ1Oofm/va4EIDzCphrKB38uJeM9QqJzluHxUjSWDKx28MAQZfVxu8kCnZqSmpb0onvQLgguGmUxQzWXa32z8Z5bHj+bWKGCsitQFBoBFi4wV72lMBpa12U6FJS6WH2qPpmIgU0Wtl8YYX1p3XTQiZJfUFBDxvMg6gyBRz9TsWH0KxvfYfO/bqxp+Oaywc00tIRSRX9mDgH1+e86/PXbfgN//8ofDV/straz6iiabI++AdZ3nhO7yTcazAjyHPPWO7iqHhcwEizwULlymgCrpYZW2q7oK0ZX5ANE2e+OE8HqiXFW+tlTrhgzKxqPkNZlUt0xPeIRLClt24Uzm37XucV1ErqQtz59OD9mBuEqMgKP95tw4MdFVnG/F2sPvIAV6HUBQZRmCK5qCkzlN9T5vy1xzzKR5svdQgHn3f4s1twXqOsZ2 ha/gCWFJ yx8R7Il25ioWtZLVZh128iAm0KStUnNqpYrlayjJnDbNlabj2JRBM8+EhlRJphOXT4vXRKq9XzN2Dw/2edRokuWlNyFcJ6GQjnpdKH3EWsw9HVq/SP2gdHJ8U6A/dC3X9EJMc8DVKaYDZod1vnJhHJ1XB7Dn7BONquSZ6ogt64LgQCTN7iUJQakCH4MqrGQtnkvX5/FKHHLAu730qla3/ko3ZocxfA3aINvJllHV12z89rqTFgRViyxj025cDqxkzjoQhfphSeGqSoA+VwCCNZAak7kcBMYppbEMzjaNl7tL0oLeaBU7lu1zExWr/E1/ZVRQJ++2cMj53oRjK7Nl4LLTQ8alpRlfYPPliulMUL5V4sQYtiz0lnTDOOw77Ric6YR0i+iGE4Rf+zO3skwrn3o6TGGcJgaykdsKyyKDeZW0aSa8wzDfFSwkKnPyRVv8BrX040Y/0fva9rpKXV3LjWd2jdowOT9WFf07cn0udWF0d7D0gZzUgthiZAX3SbFMv1a5Ilm41+KgB6njNAdTMSfreNFTzxhdfc+ARl8Tfjk/xi/WUVnNdMYKd7QWOqG7xPBuXuXyd+2Ha0oKns/StYgk8M5RWe5JcAQYwD+B6+uZEVUVs/RrK/87m+KKj34FrX1M/wh4Wsd23uZq7SKstBRV+/JssX4Gb1DuNMIY2OJ0r7fuCtI+PsenGyQ== 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: flush_next_time is an inaccurate name. It's not the next time that periodic flushing will happen, it's rather the next time that ratelimited flushing can happen if the periodic flusher is late. Simplify its semantics by just storing the timestamp of the last flush instead, flush_last_time. Move the 2*FLUSH_TIME addition to mem_cgroup_flush_stats_ratelimited(), and add a comment explaining it. This way, all the ratelimiting semantics live in one place. No functional change intended. Signed-off-by: Yosry Ahmed --- mm/memcontrol.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index b29b850cf399..35a9c013d755 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -590,7 +590,7 @@ static DECLARE_DEFERRABLE_WORK(stats_flush_dwork, flush_memcg_stats_dwork); static DEFINE_PER_CPU(unsigned int, stats_updates); static atomic_t stats_flush_ongoing = ATOMIC_INIT(0); static atomic_t stats_flush_threshold = ATOMIC_INIT(0); -static u64 flush_next_time; +static u64 flush_last_time; #define FLUSH_TIME (2UL*HZ) @@ -650,7 +650,7 @@ static void do_flush_stats(void) atomic_xchg(&stats_flush_ongoing, 1)) return; - WRITE_ONCE(flush_next_time, jiffies_64 + 2*FLUSH_TIME); + WRITE_ONCE(flush_last_time, jiffies_64); cgroup_rstat_flush(root_mem_cgroup->css.cgroup); @@ -666,7 +666,8 @@ void mem_cgroup_flush_stats(void) void mem_cgroup_flush_stats_ratelimited(void) { - if (time_after64(jiffies_64, READ_ONCE(flush_next_time))) + /* Only flush if the periodic flusher is one full cycle late */ + if (time_after64(jiffies_64, READ_ONCE(flush_last_time) + 2*FLUSH_TIME)) mem_cgroup_flush_stats(); }