From: Barry Song <21cnbao@gmail.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: David Hildenbrand <david@redhat.com>,
akpm@linux-foundation.org, shuah@kernel.org, linux-mm@kvack.org,
chrisl@kernel.org, hughd@google.com, kaleshsingh@google.com,
kasong@tencent.com, linux-kernel@vger.kernel.org,
ying.huang@intel.com, linux-kselftest@vger.kernel.org,
Barry Song <v-songbaohua@oppo.com>
Subject: Re: [PATCH] selftests/mm: Introduce a test program to assess swap entry allocation for thp_swapout
Date: Fri, 21 Jun 2024 19:47:02 +1200 [thread overview]
Message-ID: <CAGsJ_4y_pjMpNOFzrPZ6u7=M83-CQ0umDCPt=ZDuSKJWssiCqA@mail.gmail.com> (raw)
In-Reply-To: <b99c2f80-3b53-4b04-b610-a66179b928a9@arm.com>
On Fri, Jun 21, 2024 at 7:25 PM Ryan Roberts <ryan.roberts@arm.com> wrote:
>
> On 20/06/2024 12:34, David Hildenbrand wrote:
> > On 20.06.24 11:04, Ryan Roberts wrote:
> >> On 20/06/2024 01:26, Barry Song wrote:
> >>> From: Barry Song <v-songbaohua@oppo.com>
> >>>
> >>> Both Ryan and Chris have been utilizing the small test program to aid
> >>> in debugging and identifying issues with swap entry allocation. While
> >>> a real or intricate workload might be more suitable for assessing the
> >>> correctness and effectiveness of the swap allocation policy, a small
> >>> test program presents a simpler means of understanding the problem and
> >>> initially verifying the improvements being made.
> >>>
> >>> Let's endeavor to integrate it into the self-test suite. Although it
> >>> presently only accommodates 64KB and 4KB, I'm optimistic that we can
> >>> expand its capabilities to support multiple sizes and simulate more
> >>> complex systems in the future as required.
> >>
> >> I'll try to summarize the thread with Huang Ying by suggesting this test program
> >> is "neccessary but not sufficient" to exhaustively test the mTHP swap-out path.
> >> I've certainly found it useful and think it would be a valuable addition to the
> >> tree.
> >>
> >> That said, I'm not convinced it is a selftest; IMO a selftest should provide a
> >> clear pass/fail result against some criteria and must be able to be run
> >> automatically by (e.g.) a CI system.
> >
> > Likely we should then consider moving other such performance-related thingies
> > out of the selftests?
>
> Yes, that would get my vote. But of the 4 tests you mentioned that use
> clock_gettime(), it looks like transhuge-stress is the only one that doesn't
> have a pass/fail result, so is probably the only candidate for moving.
>
> The others either use the times as a timeout and determines failure if the
> action didn't occur within the timeout (e.g. ksm_tests.c) or use it to add some
> supplemental performance information to an otherwise functionality-oriented test.
Thank you very much, Ryan. I think you've found a better home for this
tool . I will
send v2, relocating it to tools/mm and adding a function to swap in
either the whole
mTHPs or a portion of mTHPs by "-a"(aligned swapin).
So basically, we will have
1. Use MADV_PAGEPUT for rapid swap-out, putting the swap allocation code under
high exercise in a short time.
2. Use MADV_DONTNEED to simulate the behavior of libc and Java heap in freeing
memory, as well as for munmap, app exits, or OOM killer scenarios. This ensures
new mTHP is always generated, released or swapped out, similar to the behavior
on a PC or Android phone where many applications are frequently started and
terminated.
3. Swap in with or without the "-a" option to observe how fragments
due to swap-in
and the incoming swap-in of large folios will impact swap-out fallback.
And many thanks to Chris for the suggestion on improving it within
selftest, though I
prefer to place it in tools/mm.
Thanks
Barry
next prev parent reply other threads:[~2024-06-21 7:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-20 0:26 Barry Song
2024-06-20 1:53 ` Huang, Ying
2024-06-20 2:04 ` Barry Song
2024-06-20 5:20 ` Huang, Ying
2024-06-20 6:09 ` Barry Song
2024-06-20 6:34 ` Huang, Ying
2024-06-20 7:25 ` Barry Song
2024-06-20 7:59 ` Huang, Ying
2024-06-20 8:11 ` Barry Song
2024-06-20 8:26 ` Huang, Ying
2024-06-20 9:07 ` Barry Song
[not found] ` <3e185f8d-da63-4a61-9cd1-9804bd972515@redhat.com>
2024-06-20 7:24 ` Huang, Ying
2024-06-20 9:04 ` Ryan Roberts
2024-06-20 11:34 ` David Hildenbrand
2024-06-21 2:33 ` Huang, Ying
2024-06-21 7:25 ` Ryan Roberts
2024-06-21 7:47 ` Barry Song [this message]
2024-06-21 7:58 ` Ryan Roberts
2024-06-21 8:50 ` Chris Li
2024-06-21 11:20 ` Barry Song
2024-06-21 9:22 ` Huang, Ying
2024-06-21 9:43 ` Barry Song
2024-06-24 3:42 ` Huang, Ying
2024-06-24 4:05 ` Barry Song
2024-06-24 6:59 ` Huang, Ying
2024-06-24 7:55 ` Barry Song
2024-06-21 8:52 ` David Hildenbrand
2024-06-20 23:34 ` Chris Li
2024-06-21 7:34 ` Ryan Roberts
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='CAGsJ_4y_pjMpNOFzrPZ6u7=M83-CQ0umDCPt=ZDuSKJWssiCqA@mail.gmail.com' \
--to=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=chrisl@kernel.org \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=kaleshsingh@google.com \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ryan.roberts@arm.com \
--cc=shuah@kernel.org \
--cc=v-songbaohua@oppo.com \
--cc=ying.huang@intel.com \
/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