[PATCH 03/14] powerpc/64s: allocate lppacas individually

Michael Ellerman mpe at ellerman.id.au
Sat Mar 17 01:16:52 AEDT 2018


Nicholas Piggin <npiggin at gmail.com> writes:
> On Tue, 13 Mar 2018 23:41:46 +1100
> Michael Ellerman <mpe at ellerman.id.au> wrote:
>> Nicholas Piggin <npiggin at gmail.com> writes:
>> > 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


More information about the Linuxppc-dev mailing list