Re: [PATCH] powerpc/pseries: Fix MCE handling on pseries
From: Nicholas Piggin <npiggin@gmail.com>
Date: 2020-03-14 04:07:17
Ganesh Goudar's on March 14, 2020 12:04 am:
MCE handling on pSeries platform fails as recent rework to use common code for pSeries and PowerNV in machine check error handling tries to access per-cpu variables in realmode. The per-cpu variables may be outside the RMO region on pSeries platform and needs translation to be enabled for access. Just moving these per-cpu variable into RMO region did'nt help because we queue some work to workqueues in real mode, which again tries to touch per-cpu variables.
Which queues are these? We should not be using Linux workqueues, but the powerpc mce code which uses irq_work.
Also fwnmi_release_errinfo() cannot be called when translation is not enabled.
Why not?
This patch fixes this by enabling translation in the exception handler when all required real mode handling is done. This change only affects the pSeries platform.
Not supposed to do this, because we might not be in a state where the MMU is ready to be turned on at this point. I'd like to understand better which accesses are a problem, and whether we can fix them all to be in the RMO. Thanks, Nick