Re: [PATCH] vmalloc: Don't use flush flag when no exec perm

From: Meelis Roos
Date: Thu May 30 2019 - 03:48:25 EST


The addition of VM_FLUSH_RESET_PERMS for BPF JIT allocations was
bisected to prevent boot on an UltraSparc III machine. It was found
that
sometime shortly after the TLB flush this flag does on vfree of the
BPF
program, the machine hung. Further investigation showed that before
any of
the changes for this flag were introduced, with
CONFIG_DEBUG_PAGEALLOC
configured (which does a similar TLB flush of the vmalloc range on
every vfree), this machine also hung shortly after the first vmalloc
unmap/free.

So the evidence points to there being some existing issue with the
vmalloc TLB flushes, but it's still unknown exactly why these hangs
are
happening on sparc. It is also unknown when someone with this
hardware
could resolve this, and in the meantime using this flag on it turns a
lurking behavior into something that prevents boot.

The sparc TLB flush issue has been bisected and is being worked on now,
so hopefully we won't need this patch:
https://marc.info/?l=linux-sparc&m=155915694304118&w=2

And the sparc64 patch that fixes CONFIG_DEBUG_PAGEALLOC also fixes booting
of the latest git kernel on Sun V445 where my problem initially happened.

--
Meelis Roos <mroos@xxxxxxxx>