[PATCH v5 0/4] powerpc/papr_scm: Workaround for failure of drc bind after kexec
Aneesh Kumar K.V
aneesh.kumar at linux.ibm.com
Wed Jul 24 20:04:40 AEST 2019
Vaibhav Jain <vaibhav at linux.ibm.com> writes:
> Presently an error is returned in response to hcall H_SCM_BIND_MEM when a
> new kernel boots on lpar via kexec. This prevents papr_scm from registering
> drc memory regions with nvdimm. The error reported is of the form below:
> "papr_scm ibm,persistent-memory:ibm,pmemory at 44100002: bind err: -68"
> On investigation it was revealed that phyp returns this error as previous
> kernel did not completely release bindings for drc scm-memory blocks and
> hence phyp rejected request for re-binding these block to lpar with error
> H_OVERLAP. Also support for a new H_SCM_UNBIND_ALL is recently added which
> is better suited for releasing all the bound scm-memory block from an lpar.
> So leveraging new hcall H_SCM_UNBIND_ALL, we can workaround H_OVERLAP issue
> during kexec by forcing an unbind of all drm scm-memory blocks and issuing
> H_SCM_BIND_MEM to re-bind the drc scm-memory blocks to lpar. This sequence
> will also be needed when a new kernel boot on lpar after previous kernel
> panicked and it never got an opportunity to call H_SCM_UNBIND_MEM/ALL.
> Hence this patch-set implements following changes to papr_scm module:
> * Update hvcall.h to include opcodes for new hcall H_SCM_UNBIND_ALL.
> * Update it to use H_SCM_UNBIND_ALL instead of H_SCM_UNBIND_MEM
> * In case hcall H_SCM_BIND_MEM fails with error H_OVERLAP, force
> H_SCM_UNBIND_ALL and retry the bind operation again.
You can add for the series.
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
More information about the Linuxppc-dev