All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: Suren Baghdasaryan <surenb@google.com>,
	akpm@linux-foundation.org, Liam.Howlett@oracle.com,
	vbabka@suse.cz, peterx@redhat.com, jannh@google.com,
	hannes@cmpxchg.org, mhocko@kernel.org, paulmck@kernel.org,
	shuah@kernel.org, adobriyan@gmail.com, brauner@kernel.org,
	josef@toxicpanda.com, yebin10@huawei.com, linux@weissschuh.net,
	willy@infradead.org, osalvador@suse.de, andrii@kernel.org,
	ryan.roberts@arm.com, christophe.leroy@csgroup.eu,
	tjmercier@google.com, kaleshsingh@google.com,
	aha310510@gmail.com, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v7 1/7] selftests/proc: add /proc/pid/maps tearing from vma split test
Date: Wed, 16 Jul 2025 11:50:22 +0100	[thread overview]
Message-ID: <ac9c5912-e19e-4653-9b6c-e68ca3a058f7@lucifer.local> (raw)
In-Reply-To: <f041e611-9d28-4a30-8515-97080f742360@redhat.com>

On Wed, Jul 16, 2025 at 12:44:23PM +0200, David Hildenbrand wrote:
> On 16.07.25 05:05, Suren Baghdasaryan wrote:
> > The /proc/pid/maps file is generated page by page, with the mmap_lock
> > released between pages.  This can lead to inconsistent reads if the
> > underlying vmas are concurrently modified. For instance, if a vma split
> > or merge occurs at a page boundary while /proc/pid/maps is being read,
> > the same vma might be seen twice: once before and once after the change.
> > This duplication is considered acceptable for userspace handling.
> > However, observing a "hole" where a vma should be (e.g., due to a vma
> > being replaced and the space temporarily being empty) is unacceptable.
> >
> > Implement a test that:
> > 1. Forks a child process which continuously modifies its address space,
> > specifically targeting a vma at the boundary between two pages.
> > 2. The parent process repeatedly reads the child's /proc/pid/maps.
> > 3. The parent process checks the last vma of the first page and
> > the first vma of the second page for consistency, looking for the
> > effects of vma splits or merges.
> >
> > The test duration is configurable via the -d command-line parameter
> > in seconds to increase the likelihood of catching the race condition.
> > The default test duration is 5 seconds.
> >
> > Example Command: proc-maps-race -d 10
> >
> > Signed-off-by: Suren Baghdasaryan <surenb@google.com>
>
> Why is this selftest not making use of any kselftest framework?
>
> I'm sure there is a very good reason :)
>
> Reading assert() feels very weird compared to other selftests.

Sorry to meta-review via your review again David :P

But just to say tools/testing/selftests/kselftest_harness.h is really good, and
makes life simple. See tools/testing/selftests/mm/guard-regions.c for an example
of how they can be used - pretty straightforward and avoids a lot of kselftest
boilerplate.

>
> --
> Cheers,
>
> David / dhildenb
>
>

  reply	other threads:[~2025-07-16 10:51 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-16  3:05 [PATCH v7 0/7] use per-vma locks for /proc/pid/maps reads Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 1/7] selftests/proc: add /proc/pid/maps tearing from vma split test Suren Baghdasaryan
2025-07-16 10:44   ` David Hildenbrand
2025-07-16 10:50     ` Lorenzo Stoakes [this message]
2025-07-16 14:20       ` Suren Baghdasaryan
2025-07-16 16:44         ` Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 2/7] selftests/proc: extend /proc/pid/maps tearing test to include vma resizing Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 3/7] selftests/proc: extend /proc/pid/maps tearing test to include vma remapping Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 4/7] selftests/proc: test PROCMAP_QUERY ioctl while vma is concurrently modified Suren Baghdasaryan
2025-07-16 10:04   ` David Hildenbrand
2025-07-16 10:39     ` Lorenzo Stoakes
2025-07-16 16:43       ` Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 5/7] selftests/proc: add verbose more for tests to facilitate debugging Suren Baghdasaryan
2025-07-16  3:05 ` [PATCH v7 6/7] fs/proc/task_mmu: remove conversion of seq_file position to unsigned Suren Baghdasaryan
2025-07-16 10:41   ` David Hildenbrand
2025-07-16  3:05 ` [PATCH v7 7/7] fs/proc/task_mmu: read proc/pid/maps under per-vma lock Suren Baghdasaryan
2025-07-16 13:57   ` Vlastimil Babka
2025-07-16 14:29     ` Suren Baghdasaryan
2025-07-16 22:55 ` [PATCH v7 0/7] use per-vma locks for /proc/pid/maps reads Andrew Morton
2025-07-17  1:38   ` Suren Baghdasaryan

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=ac9c5912-e19e-4653-9b6c-e68ca3a058f7@lucifer.local \
    --to=lorenzo.stoakes@oracle.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=adobriyan@gmail.com \
    --cc=aha310510@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrii@kernel.org \
    --cc=brauner@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=david@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=jannh@google.com \
    --cc=josef@toxicpanda.com \
    --cc=kaleshsingh@google.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@weissschuh.net \
    --cc=mhocko@kernel.org \
    --cc=osalvador@suse.de \
    --cc=paulmck@kernel.org \
    --cc=peterx@redhat.com \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=tjmercier@google.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    --cc=yebin10@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.