mbox series

[v6,00/11] kvm: s390: Add PV dump support

Message ID 20220517163629.3443-1-frankja@linux.ibm.com (mailing list archive)
Headers show
Series kvm: s390: Add PV dump support | expand

Message

Janosch Frank May 17, 2022, 4:36 p.m. UTC
Sometimes dumping inside of a VM fails, is unavailable or doesn't
yield the required data. For these occasions we dump the VM from the
outside, writing memory and cpu data to a file.

Up to now PV guests only supported dumping from the inside of the
guest through dumpers like KDUMP. A PV guest can be dumped from the
hypervisor but the data will be stale and / or encrypted.

To get the actual state of the PV VM we need the help of the
Ultravisor who safeguards the VM state. New UV calls have been added
to initialize the dump, dump storage state data, dump cpu data and
complete the dump process.

I chose not to document the dump data provided by the Ultravisor since
KVM doesn't interprete it in any way. We're currently searching for a
location and enough cycles to make it available to all.

v6:
	* Added patch that explains KVM's rc/rrc writes
	* Added rev-bys
	* Improved documentation
	* Reworked capability indication
	* Moved the dump completion into a new function

v5:
	* v4 went out without a version
	* Fixed spelling mistake in query
	* Improved the storage state dump code
	* Switched to the scheduling uv call for all dump commands
	* Fixed the documentation formatting
	* Moved the capability into its own patch it shouldn't be part of patch #6

v4:
	* Rebased and fixed up conflicts due to the Documentation
          changes and new KVM capabilities
	* Fixed the dump facility check, now we check for all 4 calls


Janosch Frank (11):
  s390x: Add SE hdr query information
  s390: uv: Add dump fields to query
  KVM: s390: pv: Add query interface
  KVM: s390: pv: Add dump support definitions
  KVM: s390: pv: Add query dump information
  kvm: s390: Add configuration dump functionality
  kvm: s390: Add CPU dump functionality
  kvm: s390: Add KVM_CAP_S390_PROTECTED_DUMP
  Documentation: virt: Protected virtual machine dumps
  Documentation/virt/kvm/api.rst: Add protvirt dump/info api
    descriptions
  Documentation/virt/kvm/api.rst: Explain rc/rrc delivery

 Documentation/virt/kvm/api.rst               | 163 ++++++++++-
 Documentation/virt/kvm/s390/index.rst        |   1 +
 Documentation/virt/kvm/s390/s390-pv-dump.rst |  64 +++++
 arch/s390/boot/uv.c                          |   4 +
 arch/s390/include/asm/kvm_host.h             |   1 +
 arch/s390/include/asm/uv.h                   |  45 +++-
 arch/s390/kernel/uv.c                        |  53 ++++
 arch/s390/kvm/kvm-s390.c                     | 269 +++++++++++++++++++
 arch/s390/kvm/kvm-s390.h                     |   5 +
 arch/s390/kvm/pv.c                           | 199 ++++++++++++++
 include/uapi/linux/kvm.h                     |  55 ++++
 11 files changed, 856 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/virt/kvm/s390/s390-pv-dump.rst

Comments

Christian Borntraeger May 30, 2022, 1:10 p.m. UTC | #1
Am 17.05.22 um 18:36 schrieb Janosch Frank:
> Sometimes dumping inside of a VM fails, is unavailable or doesn't
> yield the required data. For these occasions we dump the VM from the
> outside, writing memory and cpu data to a file.
> 
> Up to now PV guests only supported dumping from the inside of the
> guest through dumpers like KDUMP. A PV guest can be dumped from the
> hypervisor but the data will be stale and / or encrypted.
> 
> To get the actual state of the PV VM we need the help of the
> Ultravisor who safeguards the VM state. New UV calls have been added
> to initialize the dump, dump storage state data, dump cpu data and
> complete the dump process.
> 
> I chose not to document the dump data provided by the Ultravisor since
> KVM doesn't interprete it in any way. We're currently searching for a
> location and enough cycles to make it available to all.
> 
> v6:
> 	* Added patch that explains KVM's rc/rrc writes
> 	* Added rev-bys
> 	* Improved documentation
> 	* Reworked capability indication
> 	* Moved the dump completion into a new function

I queued this now for kvms390/next. Its likely too late for this merge window, though.
(I also applied the fixup proposed by Claudio in patch 6).