[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ebcf8a58-84ac-4568-be2a-51826f384f4e@lucifer.local>
Date: Mon, 28 Aug 2023 20:38:17 +0100
From: Lorenzo Stoakes <lstoakes@...il.com>
To: Joel Fernandes <joel@...lfernandes.org>
Cc: linux-kernel@...r.kernel.org, linux-kselftest@...r.kernel.org,
linux-mm@...ck.org, Shuah Khan <shuah@...nel.org>,
Vlastimil Babka <vbabka@...e.cz>,
Michal Hocko <mhocko@...e.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Kirill A Shutemov <kirill@...temov.name>,
"Liam R. Howlett" <liam.howlett@...cle.com>,
"Paul E. McKenney" <paulmck@...nel.org>,
Suren Baghdasaryan <surenb@...gle.com>,
Kalesh Singh <kaleshsingh@...gle.com>,
Lokesh Gidra <lokeshgidra@...gle.com>
Subject: Re: [PATCH v5 6/7] selftests: mm: Add a test for remapping within a
range
On Mon, Aug 28, 2023 at 06:59:12PM +0000, Joel Fernandes wrote:
> On Sun, Aug 27, 2023 at 11:15:20AM +0100, Lorenzo Stoakes wrote:
> > On Sun, Aug 27, 2023 at 10:57:59AM +0100, Lorenzo Stoakes wrote:
> > [snip]
> >
> > > > +/*
> > > > + * Verify that an mremap within a range does not cause corruption
> > > > + * of unrelated part of range.
> > > > + *
> > > > + * Consider the following range which is 2MB aligned and is
> > > > + * a part of a larger 10MB range which is not shown. Each
> > > > + * character is 256KB below making the source and destination
> >
> > Just noticed, I think you misspeak here, as this test doens't seem to
> > offset by 256 KiB? That is the strategy for mremap_move_1mb_from_start()
> > rather than this test so perhaps comment needs to be moved around?
> >
> > * 2MB each. The lower case letters are moved (s to d) and the
> > * upper case letters are not moved. The below test verifies
> > * that the upper case S letters are not corrupted by the
> > * adjacent mremap.
> > *
> > * |DDDDddddSSSSssss|
> > */
> > static void mremap_move_within_range(char pattern_seed)
>
> Here we are moving 1MB within a 4MB zone of a large mapping. Each character
> 's' or 'd' is 256KB. The 256KB there is just for illustration and not really
> significant as such. The 'ssss' is moved to 'dddd' 1MB each. Here we make
Ahhh I see. I find that a little confusing here, perhaps clearer to say 'each
block of letters is 1 MiB in size' or something?
> sure that this move did not accidentally corrupt 'SSSS' and 'DDDD' due to
> alignment optimization. Basically to protect from this, we check in the code
> that the source address is beginning of the VMA:
> + if (vma->vm_start != addr_to_align)
> + return false;
>
> But you did point an issue which is I need to change the comment from 'larger
> 10MB' to 'larger 20MB'.
Did I? Well happy to take credit ;)
>
> In the mremap_move_1mb_from_start() test, I request for an alignment of
> 1.25MB so that when I align down, I fall no mapping. This is to catch a bug
> that Linus found which is that just because an aligned down address did not
> fall on a mapping, that doesn't mean we can just move it at PMD-level
> otherwise we destroy the mapping.
Yeah that case it all makes sense in, just wondered if the comment belonged
there but just me not reading your comment carefully!
>
> I do need to update the test name in mremap_move_1mb_from_start() to: "mremap
> move 1mb from start at 1MB+256KB aligned src". So thanks for point this!
>
> Would that sort it out or is there still something in the comment I am
> missing?
Just the suggestion above re: clarification, however it's not a show
stopper more of a small nit.
>
> Thanks!
>
> - Joel
Cheers!
>
>
>
>
>
>
> >
> > [snip]
Powered by blists - more mailing lists