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 590CDD10399 for ; Fri, 25 Oct 2024 00:58:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 836086B0092; Thu, 24 Oct 2024 20:58:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E68E6B0093; Thu, 24 Oct 2024 20:58:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AD2E6B0095; Thu, 24 Oct 2024 20:58:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4770D6B0092 for ; Thu, 24 Oct 2024 20:58:06 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 675CAA029A for ; Fri, 25 Oct 2024 00:57:31 +0000 (UTC) X-FDA: 82710312720.02.488359B Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by imf25.hostedemail.com (Postfix) with ESMTP id 8A9F6A001A for ; Fri, 25 Oct 2024 00:57:50 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=C7yuHPQk; spf=pass (imf25.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.176 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=1729817731; 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=nRxYZ+h/FbwZnes9RTBiCcRs5Qa6ycoRJlEPDD/8+ls=; b=15oLA8Z1z4oAYJfBqYf8qVLsOrDj5njF6dqj99Ft9HLJK2Zj/jg8lZmtJQF+AfXyH7PWHQ UgmpPEDHeKuXQfIoC+L0faaEO9EP50Zsf4mgSz8Z0KGTgAP6SUShrJzXij7z8J1s/n2q3N 72kWHSSnRqIqccZ2PpuwyRogo2VGBk4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729817731; a=rsa-sha256; cv=none; b=4v9/j+rZuso5G6vA5YJ40Oicgf5FMMzzVzs6cR+rNzcGYnG91L5bEmeZGVQvOq7c/jHXbg 6TXa/+1XktbIbR8j31W41f3nubA50G7BI+vAf8ObAKClYyaPn4g79rZVCRE9ElZgSKnonA LhbkBNvVslztNySUGyE7W0s79A6HbxE= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=C7yuHPQk; spf=pass (imf25.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2fb4af0b6beso23650731fa.3 for ; Thu, 24 Oct 2024 17:58:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1729817882; x=1730422682; darn=kvack.org; 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=nRxYZ+h/FbwZnes9RTBiCcRs5Qa6ycoRJlEPDD/8+ls=; b=C7yuHPQkshY5jDQYEKdUW1GoN4+OYNKvMcQqC3PNAuIbG391+SQ6LVnu5fHKD0qy74 l1plEzKA97Wfk9ox9cWezlXhrH+DfUICZbQxpqZyTn2JwDtev26Q57iswpaMiqWLkwZE gCMf2S+Kf4pzLzj+BQx84cXOltVGCU+Rw4AKOKq1YXC8ueXuQa+55t8eqX64qszZxvsw K1t1CYiTuSamFj3sO+GwP67ZDp03/ikk9kkc8Z/7tc7ksxTszZqwK95RvOCad9yGQPut nI8EzHgPqzddJxrLA8+LScXlwMX9BiCe2M8IB5U/jrGMgCwg7XDn2IdOa2B7GcVm892w aZQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729817882; x=1730422682; 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=nRxYZ+h/FbwZnes9RTBiCcRs5Qa6ycoRJlEPDD/8+ls=; b=eyPAQHdSPOYUhzHXj6khqUtKAcKdpcO468ZNQGWRWeTlbMbnn5WLjF9Zi9ioXdRiTf BvBw82NSj637mKDi40pQHW1/lo5nGGkEVKZWAsIHJnXA22aTsITj5ySY9fgLh4ITwUbb uL2FoBhJESqmah5N5497eOxQIdOFQhlMcgCBTL0wCfXIFSzfwPr9ULDdBJm4moeJhQXy YvUn6qNDAkUkrWenLmAJnXBhLNB5jszGpDA1rh26UuQN20nD0hMb/LiGYm/Q9+1H+aNw wKR3kAW2349SW8vAjRsvTeIb0j41z/PuzomudMXs12OvU8mIZ5tXTnhFH6WrILFW8XQA 3cLg== X-Forwarded-Encrypted: i=1; AJvYcCWIta4hA7OsqmgsYcDZPHeS+5o8/fNSEeVtNh5JFO4fm+XsrKFlw8jCAS4qfFLZI+nIx7LVEyIN0A==@kvack.org X-Gm-Message-State: AOJu0YxFFarZjV+JuI/DahHIVi/oYFXU+Wso9mo90I5NS4ZlGgye3W5j lDcLe/Ia/F4OuNxSD2dQ/Akqj2vdzFVhWvxUHVUKW4urwtXLd/9f395JfNtL9lgOiiweFvMGjFx puuMQqqfEG1INJrx/SRGbtHTmqON9se1ggu+x X-Google-Smtp-Source: AGHT+IGrmh2Cz6j6Rf4aibLQWQ9fp2BT5ntf4bIsDVqu5o3T8uAPGXryIIHdG+RHC2uG400sMXQr9MqHNLDnBS4Tstw= X-Received: by 2002:a05:651c:2117:b0:2fb:5ae7:24e7 with SMTP id 38308e7fff4ca-2fc9d2e6223mr72283631fa.4.1729817881950; Thu, 24 Oct 2024 17:58:01 -0700 (PDT) MIME-Version: 1.0 References: <20241025002511.129899-1-inwardvessel@gmail.com> <20241025002511.129899-3-inwardvessel@gmail.com> In-Reply-To: <20241025002511.129899-3-inwardvessel@gmail.com> From: Yosry Ahmed Date: Thu, 24 Oct 2024 17:57:25 -0700 Message-ID: Subject: Re: [PATCH 2/2] memcg: use memcg flush tracepoint To: JP Kobryn Cc: shakeel.butt@linux.dev, hannes@cmpxchg.org, akpm@linux-foundation.org, rostedt@goodmis.org, linux-mm@kvack.org, cgroups@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8A9F6A001A X-Stat-Signature: bcgz59idd5ty6q86wwhdei7kfqz1a33b X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1729817870-114436 X-HE-Meta: U2FsdGVkX19/sw/UlT/wDcbHoCZ2LM46HqF3HaWD24MNvXr9dugpiymbJeGwGmuo+oAMzsOXxECo2HEiReBrjJ8Tvatf88wmf+gQrEYC6LUZaf66LwtyQOJTc7iJ/zz8FhWj2J50U6ZpBDCpke/w+uSeQsRm6t0PQxVY5DcCms1tL1qLr4JlM576VTI3M4s3s5KNb6WkdeGG6/k7iPoJl3uk+fSfLKTX2oBAzU7sDfNAKnMb3kYFJb2Y9YR31UtB3AkrEb4NoCpfb6QslSzQ2Me8E5m5a0saU+A45RINv8lGsY5rg472JGU2UZpnxqKESMBrfuLCmc8LejPndGqZQtGfNxxJRu8NCmB7RY+tZhojFUcaP5JOFiWl8MFkxfBUlLfXINDjSRJbuyZChfIjVVNWUroCCvw7aVGNoZagyGwJPJWlhOXzqBPb6Z9f6sRG09zvenSl9RnsygldQpNFr6nH48ipWOog6j/T4ttXKxQ81HXOpj3p/DI9y5yTdNW5YtndPo+JkyoY3SFMiEHiEPOIN5x+RtMv7HvD0hpgmLvO2jhGsyZZ4EcCqfy40mrBoa25mqsgB9cf/1RxwgG1t3QT/aYapFOznT2A4k5dhNE3rXpfdUleCHsRUcX54sVTsLvemu/4sD7u5oVscBb186pxIwyS611KVJ/TWyw3Q9SX5dpVwGtS5REFh1rQSRSl11LF06BcsEa6EOEwao+DYqq4y9mKBJI6uli4wmecyXcSkwcqIPOq1O+4ZgToptaJAAGiKhYpYiDotwqyN6fjg0h3ra/RZyP70PQzMddl/yXSpvGwOmnQg1D09kqm1AhrkBnB0lbhA92rGTJ/RYW0Ft6NH1PvEoKsyKYDkYzazUYLYFacyhPScocZ5uArrZiHCDRb3wiiMmqBpb/rK3tTCp8t8YGt5nlkm2AVUwLc3vOZzgAr2FYsdsYwQoAQDPPqz8Sw8r+TdKRjg0uiY0L 2igfknYP zlRPszToZUFh6ybN9GmjT3jMN4i7Erkft6XkvG4Fqr8Y2wVxKbakpExiVbbHScbRrhb6Z2Jk3yBbwjjpsz5a587zolkRu1SpYolR/8xerCjWjJXDAyHWM7NBB/hLhZpU1DlX6eUq8VW86bgBx83VNB5OIPQV5PegwOH+5hapaluodtrotMmgsk6o67frhjXS6t7oNDKoADZqYgmOLI+hgT7H5Dg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000083, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Oct 24, 2024 at 5:26=E2=80=AFPM JP Kobryn = wrote: > > Make use of the flush tracepoint within memcontrol. > > Signed-off-by: JP Kobryn Is the intention to use tools like bpftrace to analyze where we flush the most? In this case, why can't we just attach to the fentry of do_flush_stats() and use the stack trace to find the path? We can also attach to mem_cgroup_flush_stats(), and the difference in counts between the two will be the number of skipped flushes. Are there other use cases for these tracepoints? > --- > mm/memcontrol.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 18c3f513d766..f816737228fa 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -613,8 +613,11 @@ void mem_cgroup_flush_stats(struct mem_cgroup *memcg= ) > if (!memcg) > memcg =3D root_mem_cgroup; > > - if (memcg_vmstats_needs_flush(memcg->vmstats)) > + if (memcg_vmstats_needs_flush(memcg->vmstats)) { > + trace_memcg_flush_stats(memcg, TRACE_MEMCG_FLUSH_READER); > do_flush_stats(memcg); > + } else > + trace_memcg_flush_stats(memcg, TRACE_MEMCG_FLUSH_READER_S= KIP); > } > > void mem_cgroup_flush_stats_ratelimited(struct mem_cgroup *memcg) > @@ -630,6 +633,7 @@ static void flush_memcg_stats_dwork(struct work_struc= t *w) > * Deliberately ignore memcg_vmstats_needs_flush() here so that f= lushing > * in latency-sensitive paths is as cheap as possible. > */ > + trace_memcg_flush_stats(root_mem_cgroup, TRACE_MEMCG_FLUSH_PERIOD= IC); > do_flush_stats(root_mem_cgroup); > queue_delayed_work(system_unbound_wq, &stats_flush_dwork, FLUSH_T= IME); > } > @@ -5285,6 +5289,7 @@ bool obj_cgroup_may_zswap(struct obj_cgroup *objcg) > * mem_cgroup_flush_stats() ignores small changes. Use > * do_flush_stats() directly to get accurate stats for ch= arging. > */ > + trace_memcg_flush_stats(memcg, TRACE_MEMCG_FLUSH_ZSWAP); > do_flush_stats(memcg); > pages =3D memcg_page_state(memcg, MEMCG_ZSWAP_B) / PAGE_S= IZE; > if (pages < max) > -- > 2.47.0 >