Re: [PATCH v3] selftests/mm: use asm volatile to not optimize mmap read variable
From: Pankaj Raghav (Samsung)
Date: Sat Jun 08 2024 - 06:23:15 EST
On Fri, Jun 07, 2024 at 09:39:36PM -0700, Andrew Morton wrote:
> On Thu, 6 Jun 2024 20:36:19 +0000 "Pankaj Raghav (Samsung)" <kernel@xxxxxxxxxxxxxxxx> wrote:
>
> > From: Pankaj Raghav <p.raghav@xxxxxxxxxxx>
> >
> > create_pagecache_thp_and_fd() in split_huge_page_test.c used the
> > variable dummy to perform mmap read.
> >
> > However, this test was skipped even on XFS which has large folio
> > support. The issue was compiler (gcc 13.2.0) was optimizing out the
> > dummy variable, therefore, not creating huge page in the page cache.
> >
> > Use asm volatile() trick to force the compiler not to optimize out
> > the loop where we read from the mmaped addr. This is similar to what is
> > being done in other tests (cow.c, etc)
> >
> > As the variable is now used in the asm statement, remove the unused
> > attribute.
> >
>
> What are the runtime effects of this change? An inappropriate test
> failure? If so, shouldn't we fix 6.9.x kernels also? And is
> fc4d182316bd ("mm: huge_memory: enable debugfs to split huge pages to
> any order") an appropriate Fixes: target?
I mentioned it here in the commit message:
However, this test was skipped even on XFS which has large folio
support.
So the test just skip these cases and does not fail. That is why I
didn't use the Fixes tag. Let me know if it needs one.
--
Pankaj