All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/4] powerpc/papr_scm: Workaround for failure of drc bind after kexec
@ 2019-07-23 16:13 Vaibhav Jain
  2019-07-23 16:13 ` [DOC][PATCH v5 1/4] powerpc: Document some HCalls for Storage Class Memory Vaibhav Jain
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Vaibhav Jain @ 2019-07-23 16:13 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: Aneesh Kumar K . V, Oliver O'Halloran, Vaibhav Jain,
	Laurent Dufour, David Gibson

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@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.

With the patch-set applied re-bind of drc scm-memory to lpar succeeds after
a kexec to new kernel as illustrated below:

# Old kernel
$ sudo ndctl list -R
[
  {
    "dev":"region0",
    <snip>
    ....
  }
]
# kexec to new kernel
$ sudo kexec --initrd=... vmlinux
...
...
I'm in purgatory
...
papr_scm ibm,persistent-memory:ibm,pmemory@44100002: Un-binding and retrying
...
# New kernel
$ sudo ndctl list -R
[
  {
    "dev":"region0",
    <snip>
    ....
  }
]

---
Change-log:
v5:
* Added a new doc-patch describing the HCALL interface between a guest kernel
  and PAPR compliant hyper-visor like PowerVM/KVM.

v4:
* Updated the patch description of first patch in the series as suggested
  by Mpe.

v3:
* Fixed a build warning reported by kbuild test robot.
* Updated the hcall opcode from latest papr-scm specification.
* Fixed a minor code comment & patch description as pointed out by Oliver.

v2:
* Addressed review comments from Oliver on v1 patchset.

Vaibhav Jain (4):
  powerpc: Document some HCalls for Storage Class Memory
  powerpc/pseries: Update SCM hcall op-codes in hvcall.h
  powerpc/papr_scm: Update drc_pmem_unbind() to use H_SCM_UNBIND_ALL
  powerpc/papr_scm: Force a scm-unbind if initial scm-bind fails

 Documentation/powerpc/hcalls.txt          | 140 ++++++++++++++++++++++
 arch/powerpc/include/asm/hvcall.h         |  11 +-
 arch/powerpc/platforms/pseries/papr_scm.c |  44 +++++--
 3 files changed, 184 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/powerpc/hcalls.txt

-- 
2.21.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-07-30 12:08 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-23 16:13 [PATCH v5 0/4] powerpc/papr_scm: Workaround for failure of drc bind after kexec Vaibhav Jain
2019-07-23 16:13 ` [DOC][PATCH v5 1/4] powerpc: Document some HCalls for Storage Class Memory Vaibhav Jain
2019-07-24  9:08   ` Laurent Dufour
2019-07-24 12:59     ` Michal Suchánek
2019-07-30  5:28       ` Vaibhav Jain
2019-07-30 12:06   ` Michael Ellerman
2019-07-23 16:13 ` [PATCH v5 2/4] powerpc/pseries: Update SCM hcall op-codes in hvcall.h Vaibhav Jain
2019-07-26  8:53   ` David Gibson
2019-07-30 11:26     ` Michael Ellerman
2019-07-23 16:13 ` [PATCH v5 3/4] powerpc/papr_scm: Update drc_pmem_unbind() to use H_SCM_UNBIND_ALL Vaibhav Jain
2019-07-23 16:13 ` [PATCH v5 4/4] powerpc/papr_scm: Force a scm-unbind if initial scm-bind fails Vaibhav Jain
2019-07-24  9:17   ` Laurent Dufour
2019-07-24  9:24     ` Oliver O'Halloran
2019-07-24  9:27       ` Laurent Dufour
2019-07-24  9:45         ` Oliver O'Halloran
2019-07-24 10:04 ` [PATCH v5 0/4] powerpc/papr_scm: Workaround for failure of drc bind after kexec Aneesh Kumar K.V

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.