Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp3098501rdb; Wed, 13 Sep 2023 01:45:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHSqF2hDPd+X27U47UUu8aL/AR113MSj97bQWuPTkVs9OzqSJD2T/rMfGS2d9LqMMxhTCSZ X-Received: by 2002:a17:903:11c8:b0:1c0:e630:5031 with SMTP id q8-20020a17090311c800b001c0e6305031mr2205876plh.28.1694594744504; Wed, 13 Sep 2023 01:45:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694594744; cv=none; d=google.com; s=arc-20160816; b=bNOv+/bq1QovtFSobeImBqn0dJ+SmYh6ucYPVOeAolEb/9xTN0T109UY3wZDLHvGSf YTxcjhmenKvXbdo/W79HYKVWs7uOgHudyyqnI0YXrf1E9/VWoyUuR9UlBeO1TNL4qyDV We2r7e3ptwTjE9lZSYRhtWlMjVw9naKSRvYeSzw6iFikqk2JLpPitvoaPktiEZGkQgUV ASSK2jg3qLMnt7SeNvVyTqbxE9ylYIlYwWQcElfRMr6V9dVNhqje3hmxsTfZ5lbaubXD wEW+bMfA94XwgiC3wHgkx1rKcZbx4DdIF727txCEDTMBSe4S36hSqphr3NWk7jvg6dvm zTUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:mime-version:date :dkim-signature; bh=TER8l9tb6XZzOMFgeFSUUqc1AW9x7/45uI22fSAHiTA=; fh=i6r7D8Tbv5L0V2RUiJXfGU+sNI1eFV0UjCNL0oNyQ80=; b=GWBBqcPrTG/mJmqkkeTxO28Vw6xAG2q/SXssHel5D+bXDhXyr7umuxJVEMotKzIWqE UkJXyk2+2iRbh8Qlq1f8gjr4KwHESxHbspsVo8bWDQEnhmuipsk0bUwQhq4LPuyzWYV5 OGMd2Eo4AVyiD4MzFYQp4xDH23LTjLalA2cUx2sGbnb5L8+J7eBabud0tSuh6SyfTLtC PZfw7gWuN2FnBLbR7HBzm2EJrHWHX9NYWzrjwqhoH4ym9Bv35v8wWD8Drb+5YJbOX/UY e6h0mdyWjZfALxm6aspSbvdh9ptLiUnlSKxvNqHxDuoBUGvX1/Nd08Edb9tX89RhC1wi Cb4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=zqX1u6T2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id j4-20020a170903028400b001c3d864d6b5si2491495plr.292.2023.09.13.01.45.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 01:45:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=zqX1u6T2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 2123E8077A61; Wed, 13 Sep 2023 00:45:10 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238599AbjIMHpK (ORCPT + 99 others); Wed, 13 Sep 2023 03:45:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232290AbjIMHpJ (ORCPT ); Wed, 13 Sep 2023 03:45:09 -0400 Received: from mail-vk1-xa4a.google.com (mail-vk1-xa4a.google.com [IPv6:2607:f8b0:4864:20::a4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F0CA1729 for ; Wed, 13 Sep 2023 00:45:05 -0700 (PDT) Received: by mail-vk1-xa4a.google.com with SMTP id 71dfb90a1353d-48d112a5031so595456e0c.1 for ; Wed, 13 Sep 2023 00:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694591104; x=1695195904; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=TER8l9tb6XZzOMFgeFSUUqc1AW9x7/45uI22fSAHiTA=; b=zqX1u6T24v63FwM5oiXBqKUxfT7wA7eHpHfU3nqWaUBaPEuc2qm6mwC7mxjVF9hMXb Hr46PFYQqw1YJCy1DL1Wa0LV5dj9Q+KCvYyvIgEUDS8+rZgwUSVBa34NoZmV+OC5ktJc au2R4K2s7O0PDVLAuADHma8mI/BRZdOljfnm11dOXSDopoJx09ZeYur04GvQ+ILrpxdJ nKtGJOvjOZuq/DioVM4l3GdnIZ3xUEk4yM2CJKOseOnP0Bnb5NttKtGEnCC96YJ57t7J vZaKrfZi5sIKsz+wotFF8wcAaHMOgGYJE9WtcpEdJ9snaz22YN6AYQ9gelIC0N56lweM qauQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694591104; x=1695195904; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=TER8l9tb6XZzOMFgeFSUUqc1AW9x7/45uI22fSAHiTA=; b=AS854M+ZjazXni/G8tA6GjvL4xgCqnG6ylwK5fzNIzcz7wK7DbexL50i8Wl+pvE2nT YzKxM7ZLs2hfLhIWYam7Q5HHDOkcJbwHdFCyxCEoAg6CKN3UDJdGzvEHbt7qXbDydB+1 usFMj6mhORAXZa/2olnNUwjvtgzTOjymWKuuCc/QNTbPNvkWDv59QdlYLHXkmXIPDU9t +Tf3ffmT4yr5cfm/fFpihVeztPnSGIrvHnxYsTnaR3MNQj+WgXWxrJLhNvW4GqJnI3oO yt/CwC3dtkUVyW9gsc8EzkymL47XdFfbFUMBxEDKxfsb531VVfptf+36riVdYZRJEWtT mJdw== X-Gm-Message-State: AOJu0YwfyRXmBjBYoERCCcreK8usPeSZQE3oJRfky9zDyc6PD5SKzYVf O1CEeYAhUYdRaI0tW8Af7cxzPzFxoyfRJHM3 X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a25:dad2:0:b0:d81:5c03:df99 with SMTP id n201-20020a25dad2000000b00d815c03df99mr18096ybf.3.1694590730421; Wed, 13 Sep 2023 00:38:50 -0700 (PDT) Date: Wed, 13 Sep 2023 07:38:43 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.42.0.283.g2d96d420d3-goog Message-ID: <20230913073846.1528938-1-yosryahmed@google.com> Subject: [PATCH 0/3] memcg: more sophisticated stats flushing 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=20Koutn=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 Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Wed, 13 Sep 2023 00:45:11 -0700 (PDT) X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email The current stats flushing approach is very simple. Everyone tries to flush the entire tree, and only a single flusher is allowed. Concurrent flushers just skip the flush completely. This approach has problems that manifest in both flushing latency and stats accuracy (or freshness). This series introduces a more sophisticated approach that aims to find a better trade-off between accuracy and performance. Essentially we try to get the best accuracy with the minimal amount of work done when possible (fast path), and we fallback to more expensive or less accurate flushes only when necessary. Details are in the commit message of patch 3, which is really the core of this series. Patches 1 & 2 are just cleanups with no functional change intended. This series replaces v4 of "memcg: non-unified flushing for userspace stats" series [1]. I did not send this as v5 as it completely deviates from what that patchset is doing (but still trying to solve the same problem). The approach followed in this series attempts to provide a more generic framework for flushing for both userspace readers and in-kernel flushers, to avoid having a lot of different flushing flavors. It also benefits in-kernel flushers as well as userspace readers. This series is a result of the discussions held in [1], and various suggestions by Wei Xu . [1] https://lore.kernel.org/lkml/20230831165611.2610118-1-yosryahmed@google.com/ Yosry Ahmed (3): mm: memcg: change flush_next_time to flush_last_time mm: memcg: rename stats_flush_threshold to stats_updates_order mm: memcg: optimize stats flushing for latency and accuracy include/linux/memcontrol.h | 4 +- mm/memcontrol.c | 125 ++++++++++++++++++++++++++----------- mm/vmscan.c | 2 +- mm/workingset.c | 8 ++- 4 files changed, 98 insertions(+), 41 deletions(-) -- 2.42.0.283.g2d96d420d3-goog