Re: [LTP] [PATCH 4/8] Hugetlb: Migrating libhugetlbfs icache-hygiene

Tarun Sahu
2022-12-19T21:09:02Z

On Dec 13 2022, Tarun Sahu wrote:
Hi,

with clang (any version) it even fails on power (with/without VM).
while debugging with lldb, I found clang/llvm used an optmization which
caused goto *p to be ignored and it just jump to jumplabel. Tunrning off
the optimization makes the test work as expected.

I will post the v2 with change in Makefile for this test.

--- a/testcases/kernel/mem/hugetlb/hugemmap/Makefile
+++ b/testcases/kernel/mem/hugetlb/hugemmap/Makefile
@@ -8,4 +8,5 @@ include $(top_srcdir)/include/mk/testcases.mk
include $(abs_srcdir)/../Makefile.inc
include $(top_srcdir)/include/mk/generic_leaf_target.mk

+hugemmap15: CFLAGS+=-O0

Thanks
Tarun

> Hi Richard,
> Thanks for looking at it.
>
> I am also trying to reproduce the same, In the meantime, I have found the
> fix commit for this bug: https://lore.kernel.org/all/20051209032051.GA11744@localhost.localdomain/
>
> I will update the tag in this and all tests moving forward,
> Pardon me for missing such crucial details.
>
> Thanks
> Taurn
> On Dec 12 2022, Richard Palethorpe wrote:
> > Hello,
> >
> > Tarun Sahu <tsahu@linux.ibm.com> writes:
> >
> > > Migrating the libhugetlbfs/testcases/icache-hygiene.c test
> > >
> > > Test Description: Older ppc64 kernels don't properly flush dcache to
> > > icache before giving a cleared page to userspace. With some exceedingly
> > > hairy code, this attempts to test for this bug.
> > >
> > > This test will never trigger (obviously) on machines with coherent
> > > icache and dcache (including x86 and POWER5). On any given run,
> > > even on a buggy kernel there's a chance the bug won't trigger -
> > > either because we don't get the same physical page back when we
> > > remap, or because the icache happens to get flushed in the interim.
> >
> > Compiling with Clang 15.0.5 on x86_64 and upstream kernel 6.0.9 in a KVM
> > VM the test fails:
> >
> > sh-5.2# ./hugemmap15
> > [13712.044617] hugemmap15 (2118): drop_caches: 3
> > tst_hugepage.c:83: TINFO: 3 hugepage(s) reserved
> > tst_test.c:1560: TINFO: Timeout per run is 0h 00m 30s
> > hugemmap15.c:191: TFAIL: icache unclean
> >
> > > +
> > > +static struct tst_test test = {
> > > + .needs_root = 1,
> > > + .mntpoint = MNTPOINT,
> > > + .needs_hugetlbfs = 1,
> > > + .needs_tmpdir = 1,
> > > + .setup = setup,
> > > + .cleanup = cleanup,
> > > + .test_all = run_test,
> > > + .hugepages = {3, TST_NEEDS},
> > > +};
> > > --
> > > 2.31.1
> >
> > Again, it would be nice to have the git tag(s) of the fix commit(s) if
> > possible.
> >
> > --
> > Thank you,
> > Richard.
> >
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp