Re: [PATCH v2 2/2] selftests/mm: add stale walk->action race test

Hyunwoo Kim <[email protected]>
Newsgroups org.kvack.linux-mm,org.kernel.vger.linux-kernel
Message-ID <aoeMMPQao3cyMm4A@v4bel>
On Mon, Aug 17, 2026 at 06:32:21PM +0100, Lorenzo Stoakes (ARM) wrote:
> On Tue, Aug 11, 2026 at 08:49:46PM +0200, David Hildenbrand (Arm) wrote:
> > On 8/11/26 20:23, Lorenzo Stoakes (ARM) wrote:
> > > On Tue, Aug 11, 2026 at 07:11:59PM +0200, David Hildenbrand (Arm) wrote:
> > >> On 8/11/26 18:18, Hyunwoo Kim wrote:
> > >>> The added pagewalk_race_test maps two PMDs and faults in 2MB of the first
> > >>> one.  A second thread then faults in the second PMD and drops it again with
> > >>> MADV_DONTNEED in a loop, while the main thread reads Rss for the mapping
> > >>> from /proc/self/smaps.
> > >>>
> > >>> Clearing the second PMD while smaps_pte_range() runs leaves walk->action
> > >>> erroneously set to ACTION_AGAIN, which causes the PUD walk to be retried,
> > >>> so the first PMD is counted twice and Rss comes out twice as large as what
> > >>> was faulted in.
> > >>>
> > >>> mincore() is the caller named in the fix, but the second walk writes past
> > >>> the length mincore() copies back, so it cannot be seen from userspace
> > >>> there.  smaps reports what the callbacks counted, so the duplicate shows up
> > >>> in Rss.
> > >>>
> > >>> A failure can only come from the kernel counting the same page twice, so
> > >>> missing the race is harmless.  On an unfixed kernel the test fails after a
> > >>> few hundred reads at most and takes about half a second.
> > >>>
> > >>> Assisted-by: Claude:claude-opus-5
> > >>> Signed-off-by: Hyunwoo Kim <[email protected]>
> > >>> ---
> > >>
> > >> I'm sorry, but I don't consider such a specialized reproducer for a problem we
> > >> hit once a good fit for a selftest.
> > >>
> > >> Or am I missing something, that this here is more generic?
> > >
> > > To be fair I did ask him for this. :)
> > >
> > > I thought it would be useful to have a regression test because there's certainly
> > > no harm in it? The code is very sensitive and catching a similar mistake in
> > > future could be useful.
> > >
> > > If you're sure this isn't valuable then he could just drop it, but it's my fault
> > > sorry Hyunwoo for giving you extra work in this case! My bad.
> >
> > pagewalk_race_test is just rather odd. If this would be part of a bigger test
> > that covers more things than just one odd race, it might be better.
> >
> > But we certainly don't want one new test file for each kernel bug we ever
> > trigger, right? :)
> 
> Right yeah :) sure we can drop this then. Sorry Hyunwoo!

That's okay :)


Best regards,
Hyunwoo Kim
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.