Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Usama Anjum <usama.anjum@arm.com>
To: David Rientjes <rientjes@google.com>
Cc: usama.anjum@arm.com, 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>,
	"David Hildenbrand (Arm)" <david@kernel.org>
Subject: Re: [patch 0/3] lib: add synthetic MM benchmarks
Date: Thu, 10 Sep 2026 13:12:22 +0100	[thread overview]
Message-ID: <8936784e-9ccb-4c33-9b30-f99552e10f87@arm.com> (raw)
In-Reply-To: <707b26ac-7f73-430a-a473-cd3409c4505c@kernel.org>

On 10/09/2026 10:38 am, David Hildenbrand (Arm) wrote:
> 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.

I also think it would be best to try to add them as kunit. I'm not exactly sure if
kunit would accept such benchmark kind of code. Some research is required there.

Thanks,
Usama



  reply	other threads:[~2026-09-10 12:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-31  4:26 [patch 0/3] lib: add synthetic MM benchmarks 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)
2026-09-10 12:12       ` Usama Anjum [this message]
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=8936784e-9ccb-4c33-9b30-f99552e10f87@arm.com \
    --to=usama.anjum@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@gentwo.org \
    --cc=david@kernel.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=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