On Mon, 27 Jul 2020 16:09:47 +1000, Nicholas Piggin wrote: > Commit 2f92447f9f96 ("powerpc/book3s64/hash: Use the pte_t address from the > caller") removed the local_irq_disable from hash_preload, but it was > required for more than just the page table walk: the hash pte busy bit is > effectively a lock which may be taken in interrupt context, and the local > update flag test must not be preempted before it's used. > > This solves apparent lockups with perf interrupting __hash_page_64K. If > get_perf_callchain then also takes a hash fault on the same page while it > is already locked, it will loop forever taking hash faults, which looks like > this: > > [...]
Applied to powerpc/fixes. [1/1] powerpc/64s/hash: Fix hash_preload running with interrupts enabled https://git.kernel.org/powerpc/c/909adfc66b9a1db21b5e8733e9ebfa6cd5135d74 cheers