Linux s390 Architecture development
 help / color / mirror / Atom feed
* [PATCH v3 0/5] KVM: s390: Implement KVM_PRE_FAULT_MEMORY
@ 2026-05-27 14:43 Claudio Imbrenda
  2026-05-27 14:43 ` [PATCH v3 1/5] KVM: s390: Track page size in struct guest_fault Claudio Imbrenda
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Claudio Imbrenda @ 2026-05-27 14:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: kvm, linux-s390, borntraeger, frankja, david, seiden, nrb,
	schlameuss, gra, pbonzini, seanjc, yan.y.zhao, isaku.yamahata

Implement KVM_PRE_FAULT_MEMORY on s390, and update documentation and
selftests accordingly.

Faulted-in pages will be marked as accessed, unlike x86, otherwise they
will trigger a minor fault when accessed. Avoiding such faults is one of
the points of KVM_PRE_FAULT_MEMORY.

This series depends on some kvm/s390 functions that are slightly buggy
at the moment. Those functions are being fixed in a separate series.
Even without those fixes, this series is not buggy, it's just a bit
inefficient in some corner cases.

CCing x86 people due to changes in the documentation and the selftests
just for completeness, since the selftest has been acked already.

v2->v3:
* Fix typos
* Correctly indicate page size in gmap_handle_minor_crste_fault() also
  in case nothing needed to be done.
* Pick up and acked-by

v1->v2:
* Add the crste_region3 flag in struct guest_fault to keep track of the
  page size used to solve a fault.
* Rewrite the s390 version of kvm_arch_vcpu_pre_fault_memory() so it
  looks and behaves similarly to the x86 version. No more loops, better
  handling of hugepage mappings, and more correct error handling.
* Remove the assertion vcpu->run->exit_reason == KVM_EXIT_IO from the
  selftest, as it is redundant and x86-specific.

Claudio Imbrenda (5):
  KVM: s390: Track page size in struct guest_fault
  KVM: s390: Implement KVM_PRE_FAULT_MEMORY
  KVM: s390: Update KVM_PRE_FAULT_MEMORY API documentation
  KVM: selftests: Fix pre_fault_memory_test to run on s390
  KVM: selftests: Enable pre_fault_memory_test for s390

 Documentation/virt/kvm/api.rst                |  5 ++-
 arch/s390/kvm/Kconfig                         |  1 +
 arch/s390/kvm/dat.h                           |  1 +
 arch/s390/kvm/gmap.c                          |  2 +
 arch/s390/kvm/kvm-s390.c                      | 45 +++++++++++++++++++
 tools/testing/selftests/kvm/Makefile.kvm      |  1 +
 .../selftests/kvm/pre_fault_memory_test.c     |  7 +--
 7 files changed, 54 insertions(+), 8 deletions(-)

-- 
2.54.0


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

end of thread, other threads:[~2026-05-27 15:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-27 14:43 [PATCH v3 0/5] KVM: s390: Implement KVM_PRE_FAULT_MEMORY Claudio Imbrenda
2026-05-27 14:43 ` [PATCH v3 1/5] KVM: s390: Track page size in struct guest_fault Claudio Imbrenda
2026-05-27 14:43 ` [PATCH v3 2/5] KVM: s390: Implement KVM_PRE_FAULT_MEMORY Claudio Imbrenda
2026-05-27 14:43 ` [PATCH v3 3/5] KVM: s390: Update KVM_PRE_FAULT_MEMORY API documentation Claudio Imbrenda
2026-05-27 14:43 ` [PATCH v3 4/5] KVM: selftests: Fix pre_fault_memory_test to run on s390 Claudio Imbrenda
2026-05-27 14:43 ` [PATCH v3 5/5] KVM: selftests: Enable pre_fault_memory_test for s390 Claudio Imbrenda
2026-05-27 15:05 ` [PATCH v3 0/5] KVM: s390: Implement KVM_PRE_FAULT_MEMORY Steffen Eiden

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox