aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorCarsten Otte <cotte@de.ibm.com>2012-01-04 04:25:26 -0500
committerAvi Kivity <avi@redhat.com>2012-03-05 07:52:20 -0500
commitccc7910fe564d99415def7c041fa261e62a43011 (patch)
tree8895fd2463f7b4e48c4510284c37e84a1753ee0d /Documentation
parentd6b6d166864fa97ca3b1ed1a5c62fd3b53d4606f (diff)
KVM: s390: ucontrol: interface to inject faults on a vcpu page table
This patch allows the user to fault in pages on a virtual cpus address space for user controlled virtual machines. Typically this is superfluous because userspace can just create a mapping and let the kernel's page fault logic take are of it. There is one exception: SIE won't start if the lowcore is not present. Normally the kernel takes care of this [handle_validity() in arch/s390/kvm/intercept.c] but since the kernel does not handle intercepts for user controlled virtual machines, userspace needs to be able to handle this condition. Signed-off-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/virtual/kvm/api.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 5ebf47d99e5..a67fb35993f 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -1539,6 +1539,22 @@ This ioctl unmaps the memory in the vcpu's address space starting at
1539"vcpu_addr" with the length "length". The field "user_addr" is ignored. 1539"vcpu_addr" with the length "length". The field "user_addr" is ignored.
1540All parameters need to be alligned by 1 megabyte. 1540All parameters need to be alligned by 1 megabyte.
1541 1541
15424.66 KVM_S390_VCPU_FAULT
1543
1544Capability: KVM_CAP_S390_UCONTROL
1545Architectures: s390
1546Type: vcpu ioctl
1547Parameters: vcpu absolute address (in)
1548Returns: 0 in case of success
1549
1550This call creates a page table entry on the virtual cpu's address space
1551(for user controlled virtual machines) or the virtual machine's address
1552space (for regular virtual machines). This only works for minor faults,
1553thus it's recommended to access subject memory page via the user page
1554table upfront. This is useful to handle validity intercepts for user
1555controlled virtual machines to fault in the virtual cpu's lowcore pages
1556prior to calling the KVM_RUN ioctl.
1557
15425. The kvm_run structure 15585. The kvm_run structure
1543 1559
1544Application code obtains a pointer to the kvm_run structure by 1560Application code obtains a pointer to the kvm_run structure by