On Tue, 13 Mar 2018 23:41:46 +1100
Michael Ellerman <m...@ellerman.id.au> wrote:

> Nicholas Piggin <npig...@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.

> 
> And the hypervisor might continue to write to the VPA, but that's OK
> because it's the VPA of the crashing kernel, the kdump kernel runs in a
> separate reserved memory region.

Well that takes care of that concern.

> Possibly we could fix the hcall tracing issues etc, but this code has
> not given us any problems for quite a while (~13 years) - ie. there
> seems to be no issue with re-registering the VPAs etc. in the kdump
> kernel.

No I think it's okay then, if you could drop that hunk...

Thanks,
Nick

Reply via email to