On Mon, Apr 13, 2020 at 04:51:25PM +0530, Naresh Kamboju wrote: > On Mon, 13 Apr 2020 at 03:12, Peter Xu <peterx@xxxxxxxxxx> wrote: > > And since this one is very easy to reproduce, I finally noticed that > > we have wrongly enabled uffd-wp on x86_32, which is definely not going > > to work... Because we'll use bit 2 of swap entry assuming that's the > > uffd-wp bit, while that's part of swp offset on 32bit systems. > > > > Naresh, could you try whether below change fixes the issue for you? > > > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > > index 8d078642b4be..7ac524d1316e 100644 > > --- a/arch/x86/Kconfig > > +++ b/arch/x86/Kconfig > > @@ -149,7 +149,7 @@ config X86 > > select HAVE_ARCH_TRACEHOOK > > select HAVE_ARCH_TRANSPARENT_HUGEPAGE > > select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64 > > - select HAVE_ARCH_USERFAULTFD_WP if USERFAULTFD > > + select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD > > select HAVE_ARCH_VMAP_STACK if X86_64 > > select HAVE_ARCH_WITHIN_STACK_FRAMES > > select HAVE_ASM_MODVERSIONS > > > > Tested-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> > > The above patch tested and did not notice the crash. > + cd /opt/kselftests/default-in-kernel/vm/ > + ./compaction_test > No of huge pages allocated = 297 > + ./compaction_test > [ 46.059785] kauditd_printk_skb: 15 callbacks suppressed > [ 46.059786] audit: type=1334 audit(1586776582.927:25): prog-id=17 op=UNLOAD > [ 46.071997] audit: type=1334 audit(1586776582.927:26): prog-id=16 op=UNLOAD > No of huge pages allocated = 160 > > Full test log, > https://lkft.validation.linaro.org/scheduler/job/1362495#L1308 > > Build artifacts. > https://builds.tuxbuild.com/w0ol7cCsGan0wzPp7bNqkg/ Thanks! I'll post a formal patch soon. -- Peter Xu