Re: [PATCH 03/14] powerpc/64s: allocate lppacas individually
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-03-16 14:16:54
Nicholas Piggin [off-list ref] writes:
On Tue, 13 Mar 2018 23:41:46 +1100 Michael Ellerman [off-list ref] wrote:quoted
Nicholas Piggin [off-list ref] writes:quoted
diff --git a/arch/powerpc/platforms/pseries/kexec.c b/arch/powerpc/platforms/pseries/kexec.c index eeb13429d685..3fe126796975 100644 --- a/arch/powerpc/platforms/pseries/kexec.c +++ b/arch/powerpc/platforms/pseries/kexec.c@@ -23,7 +23,12 @@ void pseries_kexec_cpu_down(int crash_shutdown, int secondary) { - /* Don't risk a hypervisor call if we're crashing */ + /* + * Don't risk a hypervisor call if we're crashing + * XXX: Why? The hypervisor is not crashing. It might be better + * to at least attempt unregister to avoid the hypervisor stepping + * on our memory. + */Because every extra line of code we run in the crashed kernel is another opportunity to screw up and not make it into the kdump kernel. For example the hcalls we do to unregister the VPA might trigger hcall tracing which runs a bunch of code and might trip up on something. We could modify those hcalls to not be traced, but then we can't trace them in normal operation.We really make no other hcalls in a crash? I didn't think of that.
We do, but they're explicitly written to use plpar_hcall_raw(). And TBH I haven't tested a kdump with hcall tracing enabled lately, so for all I know it's broken, but that's the theory at least. cheers