From: "David Hildenbrand (Arm)" <david@kernel.org>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Christoph Lameter <cl@gentwo.org>,
Vlastimil Babka <vbabka@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Sarthak Sharma <sarthak.sharma@arm.com>,
Muhammad Usama Anjum <usama.anjum@arm.com>
Subject: Re: [patch 0/3] lib: add synthetic MM benchmarks
Date: Thu, 10 Sep 2026 11:38:51 +0200 [thread overview]
Message-ID: <707b26ac-7f73-430a-a473-cd3409c4505c@kernel.org> (raw)
In-Reply-To: <c76621a4-cc8c-b6a7-732f-633d372477ff@google.com>
On 8/3/26 00:19, David Rientjes wrote:
> On Fri, 31 Jul 2026, David Hildenbrand (Arm) wrote:
>
>> On 7/31/26 06:26, David Rientjes wrote:
>>> A blast to the past :)
>>>
>>
>> :)
>>
>>> We've been carrying these synthetic benchmarks in our kernel tree since
>>> 2009 because they've been helpful to identify regressions in hot paths, as
>>> well as quantifying any improvements that have been made for new changes.
>>> Hopefully they can be useful to others as well.
>>>
>>> The synthetic benchmarks are run by loading the module at runtime. The
>>> modprobe will fail intentionally so that the module gets insta-unloaded.
>>> The test results are emitted to the kernel log.
>>
>>
>> Ideally we'd have an easy way to actually use them in autoamtic tests.
>>
>> E.g., loading fails -> error, loading works -> no error (and unload)
>>
>>>
>>> Proposed with permission from Christoph.
>>> ---
>>> lib/Kconfig.debug | 30 ++++
>>> lib/Makefile | 3 +
>>> lib/test_pagealloc.c | 337 ++++++++++++++++++++++++++++++++++++++
>>> lib/test_slab.c | 375 +++++++++++++++++++++++++++++++++++++++++++
>>> lib/test_vmstat.c | 95 +++++++++++
>>> 5 files changed, 840 insertions(+)
>>> create mode 100644 lib/test_pagealloc.c
>>> create mode 100644 lib/test_slab.c
>>> create mode 100644 lib/test_vmstat.c
>>
>> This looks similar to tools/testing/selftests/mm/test_vmalloc.sh and friends,
>> that can actually be executed as part of our selftests and do a modprobe.
>>
>> Can we have similar scripts to execute them?
>>
>
> Thanks for looking at these tests!
>
> Good call, I agree these could be loaded with a wrapper similar to
> test_vmalloc.sh.
>
> All three of these tests don't take module parameters (yet?) so right now
> this wrapper would just do the equivalent of check_test_requirements(),
> usage(), and run_test() where we'd pass in a single option for now,
> "performance".
>
>> But I also wonder if these test modules could be placed then in
>> tools/testing/selftests/mm/ instead (or some subdirectory for test modules).
>>
>
> I thought about the same and just followed what appears to be the standard
> convention (like test_vmalloc above) for lib/ for now. If they should all
> be moved under tools/ somewhere, perhaps we handle that in a separate
> series?
Yes. lib/ is just absolutely the wrong place for that.
Maybe lib/tests/mm
But then, I wonder if they could just be somewhere in tests/ directly ...
Anyhow, it was also raised whether some of these could be written as kunit
tests. It's been a long time since I worked on these, so just mentioning it.
--
Cheers,
David
next prev parent reply other threads:[~2026-09-10 9:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 4:26 David Rientjes
2026-07-31 4:26 ` [patch 1/3] lib: test_vmstat: add synthetic benchmark for vm stats David Rientjes
2026-08-01 13:20 ` Usama Arif
2026-08-02 23:05 ` David Rientjes
2026-08-02 23:06 ` [patch v2] " David Rientjes
2026-08-07 15:33 ` David Rientjes
2026-08-21 23:52 ` David Rientjes
2026-08-22 0:56 ` SJ Park
2026-09-10 9:40 ` David Hildenbrand (Arm)
2026-07-31 4:26 ` [patch 2/3] lib: test_slab: add synthetic benchmark for slab David Rientjes
2026-07-31 4:27 ` [patch 3/3] lib: test_pagealloc: add synthetic benchmark for page allocator David Rientjes
2026-07-31 9:00 ` [patch 0/3] lib: add synthetic MM benchmarks David Hildenbrand (Arm)
2026-08-02 22:19 ` David Rientjes
2026-08-05 7:03 ` David Hildenbrand (Arm)
2026-09-10 9:38 ` David Hildenbrand (Arm) [this message]
2026-09-10 12:12 ` Usama Anjum
2026-09-12 1:05 ` David Rientjes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=707b26ac-7f73-430a-a473-cd3409c4505c@kernel.org \
--to=david@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=cl@gentwo.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=rientjes@google.com \
--cc=sarthak.sharma@arm.com \
--cc=usama.anjum@arm.com \
--cc=vbabka@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®