From patchwork Mon Jan 9 20:53:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suren Baghdasaryan X-Patchwork-Id: 13094299 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 D0A21C54EBD for ; Mon, 9 Jan 2023 20:55:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6330B8E0001; Mon, 9 Jan 2023 15:55:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5C3B4900002; Mon, 9 Jan 2023 15:55:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2909B8E0001; Mon, 9 Jan 2023 15:55:06 -0500 (EST) 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 108648E0011 for ; Mon, 9 Jan 2023 15:55:06 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D21E7160F35 for ; Mon, 9 Jan 2023 20:55:05 +0000 (UTC) X-FDA: 80336465370.02.F0611FC Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf08.hostedemail.com (Postfix) with ESMTP id 4D21516001A for ; Mon, 9 Jan 2023 20:55:04 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=I5umo4kG; spf=pass (imf08.hostedemail.com: domain of 3J3-8YwYKCDwqspclZemmejc.amkjglsv-kkitYai.mpe@flex--surenb.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3J3-8YwYKCDwqspclZemmejc.amkjglsv-kkitYai.mpe@flex--surenb.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=1673297704; 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=mbt4mHoq0eWZO149X3WH8AIvdwQHHBNP+0MBWdKikso=; b=4h3rW3ZlUnxTurVCx8Vb/nwWMb4rEc0yeNGnpUBJTQcQXWamwlAk4/J1aynyNhw6MLf4gu N06mD/Ted6IlfejMEal2xB9r4FCgf7xOvSY4S2EKBAZO13qeAZANr7nCRBjlNNwnKL3XlU 5k1xXcDmMR5KI20JNp4LiieNrQM9noY= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=I5umo4kG; spf=pass (imf08.hostedemail.com: domain of 3J3-8YwYKCDwqspclZemmejc.amkjglsv-kkitYai.mpe@flex--surenb.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=3J3-8YwYKCDwqspclZemmejc.amkjglsv-kkitYai.mpe@flex--surenb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673297704; a=rsa-sha256; cv=none; b=2c4xnAQk6P6UT/NRukXQbNtjRvda4U0Qckec2AKST0DEF7khlmPvFkO6HLuUv3McAgMsQ1 ALifjO0vccvBMsrmTH6DWwuAFjKV0GQFfr2LYceUn6kIm0IyiBgr+nc7a5abtdEvF6vLqt 8THKo6DnOMtn4gFqfPhsCIjueiFvr5I= Received: by mail-yb1-f201.google.com with SMTP id z17-20020a256651000000b007907852ca4dso10293625ybm.16 for ; Mon, 09 Jan 2023 12:55:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=mbt4mHoq0eWZO149X3WH8AIvdwQHHBNP+0MBWdKikso=; b=I5umo4kG0hMiq4gs5OujcHd7Sn1GGJbiybdYQYTj0HAR3QOkD0OA35qcaeXUMRzGAJ dIG3EBC52wC5ibcKgTHA/19I2NomM7CaXPc78eVykHWlIF2Vt/KiNizKg3yGh0eNsGHP jtagKS1D/qcsRmP7Fqc869E/kUJC8aHONABQKFab5CUW1r0+y/kJjLtE/M8OXtv+HWMx 0jlTEySwEhV749+tPTyOU0MfX8AR34H6BYDnkbNQmdajk1IIrv1WChV6C7Fwj8u25gID LgF2w8/r6WitNZ0Roa2WVZN3Fbrz2yHOP70XPp57APsjpBjV3GkkefNK2oUkx1yrmoLm XvuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=mbt4mHoq0eWZO149X3WH8AIvdwQHHBNP+0MBWdKikso=; b=o2rF5DyMisVZL53U1/vZI3h+BGrYq5GPR0Hr6XK0wYqy2D9P2bqYhenvAcvRlF2Tal buZsUD3lu4Sar2ybDkXZgosWIoxM3dbiYhKj+I7YA7oEZV7QXIpZnzcwqJ+Q3GF/wpbV 6F5EUZJZjshXS8X0MVBLvf1dY3N5i2PxKuoZtDCyAftZp9gI/evFEKdVVww+tC1D3si6 gCeZtli7CVjiFBtxplB/8MdV6A9hNMzK+HGdO8GuYr/dl2bvxtWNEgRdlA2PYlk4Deno ZlhoLbcXGcPPS1ydZ5X6NcuvFdIHmwyNdpEVS+Bcxl+jZa1MIfEIB+LnT9/+aQFNJKA5 /Grw== X-Gm-Message-State: AFqh2kpVqYz36FK0j1WHapXnUNGje3xiPLeEzCQDK/o+19ILoBowSRF5 Me6WTRiVnJHdn2UQmttaz4XNPOD7YX4= X-Google-Smtp-Source: AMrXdXtYuIZxYJtCLtoqxn2YJzAdgg4PkVPb1cvNxFA+XZbpVDno2DZhvITBpFn/vgBWgY0+QZ+ehdsSMWQ= X-Received: from surenb-desktop.mtv.corp.google.com ([2620:15c:211:200:9393:6f7a:d410:55ca]) (user=surenb job=sendgmr) by 2002:a25:9d82:0:b0:774:df47:b5f with SMTP id v2-20020a259d82000000b00774df470b5fmr6154650ybp.405.1673297703709; Mon, 09 Jan 2023 12:55:03 -0800 (PST) Date: Mon, 9 Jan 2023 12:53:28 -0800 In-Reply-To: <20230109205336.3665937-1-surenb@google.com> Mime-Version: 1.0 References: <20230109205336.3665937-1-surenb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230109205336.3665937-34-surenb@google.com> Subject: [PATCH 33/41] mm: introduce per-VMA lock statistics From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, laurent.dufour@fr.ibm.com, paulmck@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, hughlynch@google.com, leewalsh@google.com, posk@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, surenb@google.com X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 4D21516001A X-Stat-Signature: t6wf7uuu6ua1reu5t3731t3n91tc53r6 X-HE-Tag: 1673297704-82493 X-HE-Meta: U2FsdGVkX18jmrwfoory4xuIAHdV9NNEfUKxAi8xHugZn3JFXZiGLJPQminp6SZ4kwgF6bEiS1ybxhaxbhK7UsoLYuknP2dqaIISaZk5/UqZ9ImHTLH7PL09wgikZhLyyfA7dHx7Ic4yj8nHZ0DGvN2YDHCPZg8MXdPjoARS806jWIfyUTgzy9tLSwavCbriZVMw8PCBgW8YPF24pKVwwc7m6yQLJACq9Iy5fwuzIVKn3JFiEHVOxwdMhuZg4PgU+QAnvzQqtrjRYND7tpvifRaVj5ulbiAViDlbZBvrCSd9hiYDczRYYeGXb3CNzSClTSSd7lGbhDVQ/B8PmQ7hwNEODZ4rEk3fkijUNJVC0qCUzwyx0/fCDrzxCLNVi0iE0jSIS8GGuOwLhZfoPOgW3vCFchvTdQ1SgaPa4iQYVadzV6iUBH+rr+4mkvyMX5WjgnzvxlL9lNTUYe8w9/Zl/5/XR4ZGGiuQD42lP4nV5PR1ivpQQtApN/wVP/ELMqcsIOtdvqTeiZLpLSowm9/7m/29l44tg4k+bHN4qKdDq+08/7hvMYVu3goN+LDlKmXskU+WVXalH8yH0W+/RrIYGAXWZhmgjRUyA0kARokBJaN+BHHTcd9ASwKnDBVTHvvs5Qx2nq0LBb29I6xbJuH3gTgKZAZ+DqvgPz5DW6kcP55dz9hmg7mEyRJngHd4iJOfbnHnJ+6P7gvad/W4RAYf971UVOB+7dhIVuqmhNd8VMh7vwl3j2DL6u1Sn8hZO0JVr2I90QZWcoluXIYQdmetb2YT9rvE8XEzHCUnuPsQPdnX/X0DQa64ub4C0f+1GDVPNzyXeYOedtp8Zt+BlFwc8j/01NRTcX6NwBQu6QZVnK1Jc4NCZh+mzExAFzPuIK3mpK04HlnuRrIZkj12tjBeVn76dmmEkcBSO7j82MsyrhkwhaEhPAU2sbN78UQl+Q7b9SjNkylIQz6Dcxf6T1Z IjqXSXzC cRTMBPYz1nsWc5c32qaCa22LkHOljrlx6iadCz9g11u3n+j4/ePWhNR2IgmItKUkhtrecBsF3c4uz0pVOuDvxN3+bS70YSDkHRn2SMJs7WaZzCsmhc2irUB39hxyxivKUqog2h9AfrwsHq5BH18bDVTdD+hVUCF0862sCv3ZWrx4WLvbBNqi1Ugb+6uQj8Atwv/a3/Z84mA0SOkJ6nJRM4KK69BPvhMQsEuqaWsfXoIK+VdnE21aDKKbLn/u5P4YNjglloLnUncscE1Yyf9FjF2gWyiZ+zfzI75PMrbrfUZgMhbvpv/fpoeopdrVsOInnXpKt79321yk5FIEa6KmAB2Qf3mYcScI2/jfBWy4u/yf7aU0lR1XYhs4Nzg== 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: Add a new CONFIG_PER_VMA_LOCK_STATS config option to dump extra statistics about handling page fault under VMA lock. Signed-off-by: Suren Baghdasaryan --- include/linux/vm_event_item.h | 6 ++++++ include/linux/vmstat.h | 6 ++++++ mm/Kconfig.debug | 8 ++++++++ mm/vmstat.c | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 7f5d1caf5890..8abfa1240040 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -149,6 +149,12 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, #ifdef CONFIG_X86 DIRECT_MAP_LEVEL2_SPLIT, DIRECT_MAP_LEVEL3_SPLIT, +#endif +#ifdef CONFIG_PER_VMA_LOCK_STATS + VMA_LOCK_SUCCESS, + VMA_LOCK_ABORT, + VMA_LOCK_RETRY, + VMA_LOCK_MISS, #endif NR_VM_EVENT_ITEMS }; diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 19cf5b6892ce..fed855bae6d8 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -125,6 +125,12 @@ static inline void vm_events_fold_cpu(int cpu) #define count_vm_tlb_events(x, y) do { (void)(y); } while (0) #endif +#ifdef CONFIG_PER_VMA_LOCK_STATS +#define count_vm_vma_lock_event(x) count_vm_event(x) +#else +#define count_vm_vma_lock_event(x) do {} while (0) +#endif + #define __count_zid_vm_events(item, zid, delta) \ __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta) diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug index fca699ad1fb0..32a93b064590 100644 --- a/mm/Kconfig.debug +++ b/mm/Kconfig.debug @@ -207,3 +207,11 @@ config PTDUMP_DEBUGFS kernel. If in doubt, say N. + + +config PER_VMA_LOCK_STATS + bool "Statistics for per-vma locks" + depends on PER_VMA_LOCK + default y + help + Statistics for per-vma locks. diff --git a/mm/vmstat.c b/mm/vmstat.c index 1ea6a5ce1c41..4f1089a1860e 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1399,6 +1399,12 @@ const char * const vmstat_text[] = { "direct_map_level2_splits", "direct_map_level3_splits", #endif +#ifdef CONFIG_PER_VMA_LOCK_STATS + "vma_lock_success", + "vma_lock_abort", + "vma_lock_retry", + "vma_lock_miss", +#endif #endif /* CONFIG_VM_EVENT_COUNTERS || CONFIG_MEMCG */ }; #endif /* CONFIG_PROC_FS || CONFIG_SYSFS || CONFIG_NUMA || CONFIG_MEMCG */