aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-04 11:47:12 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-04 11:47:12 -0400
commitb05d59dfceaea72565b1648af929b037b0f96d7f (patch)
treebbe92714be468ed8783bce6ac2c305c0aedf8eb5 /Documentation/virtual
parentdaf342af2f7856fd2f5c66b9fb39a8f24986ca53 (diff)
parent820b3fcdeb80d30410f4427d2cbf9161c35fdeef (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm into next
Pull KVM updates from Paolo Bonzini: "At over 200 commits, covering almost all supported architectures, this was a pretty active cycle for KVM. Changes include: - a lot of s390 changes: optimizations, support for migration, GDB support and more - ARM changes are pretty small: support for the PSCI 0.2 hypercall interface on both the guest and the host (the latter acked by Catalin) - initial POWER8 and little-endian host support - support for running u-boot on embedded POWER targets - pretty large changes to MIPS too, completing the userspace interface and improving the handling of virtualized timer hardware - for x86, a larger set of changes is scheduled for 3.17. Still, we have a few emulator bugfixes and support for running nested fully-virtualized Xen guests (para-virtualized Xen guests have always worked). And some optimizations too. The only missing architecture here is ia64. It's not a coincidence that support for KVM on ia64 is scheduled for removal in 3.17" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (203 commits) KVM: add missing cleanup_srcu_struct KVM: PPC: Book3S PR: Rework SLB switching code KVM: PPC: Book3S PR: Use SLB entry 0 KVM: PPC: Book3S HV: Fix machine check delivery to guest KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs KVM: PPC: Book3S HV: Make sure we don't miss dirty pages KVM: PPC: Book3S HV: Fix dirty map for hugepages KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates() KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number KVM: PPC: Book3S: Add ONE_REG register names that were missed KVM: PPC: Add CAP to indicate hcall fixes KVM: PPC: MPIC: Reset IRQ source private members KVM: PPC: Graciously fail broken LE hypercalls PPC: ePAPR: Fix hypercall on LE guest KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler KVM: PPC: BOOK3S: Always use the saved DAR value PPC: KVM: Make NX bit available with magic page KVM: PPC: Disable NX for old magic page using guests KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest ...
Diffstat (limited to 'Documentation/virtual')
-rw-r--r--Documentation/virtual/kvm/api.txt33
-rw-r--r--Documentation/virtual/kvm/devices/vm.txt26
-rw-r--r--Documentation/virtual/kvm/ppc-pv.txt14
-rw-r--r--Documentation/virtual/kvm/s390-diag.txt2
4 files changed, 71 insertions, 4 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index b4f53653c106..75f20c6038a9 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -1794,6 +1794,11 @@ registers, find a list below:
1794 PPC | KVM_REG_PPC_MMCR0 | 64 1794 PPC | KVM_REG_PPC_MMCR0 | 64
1795 PPC | KVM_REG_PPC_MMCR1 | 64 1795 PPC | KVM_REG_PPC_MMCR1 | 64
1796 PPC | KVM_REG_PPC_MMCRA | 64 1796 PPC | KVM_REG_PPC_MMCRA | 64
1797 PPC | KVM_REG_PPC_MMCR2 | 64
1798 PPC | KVM_REG_PPC_MMCRS | 64
1799 PPC | KVM_REG_PPC_SIAR | 64
1800 PPC | KVM_REG_PPC_SDAR | 64
1801 PPC | KVM_REG_PPC_SIER | 64
1797 PPC | KVM_REG_PPC_PMC1 | 32 1802 PPC | KVM_REG_PPC_PMC1 | 32
1798 PPC | KVM_REG_PPC_PMC2 | 32 1803 PPC | KVM_REG_PPC_PMC2 | 32
1799 PPC | KVM_REG_PPC_PMC3 | 32 1804 PPC | KVM_REG_PPC_PMC3 | 32
@@ -1868,6 +1873,7 @@ registers, find a list below:
1868 PPC | KVM_REG_PPC_PPR | 64 1873 PPC | KVM_REG_PPC_PPR | 64
1869 PPC | KVM_REG_PPC_ARCH_COMPAT 32 1874 PPC | KVM_REG_PPC_ARCH_COMPAT 32
1870 PPC | KVM_REG_PPC_DABRX | 32 1875 PPC | KVM_REG_PPC_DABRX | 32
1876 PPC | KVM_REG_PPC_WORT | 64
1871 PPC | KVM_REG_PPC_TM_GPR0 | 64 1877 PPC | KVM_REG_PPC_TM_GPR0 | 64
1872 ... 1878 ...
1873 PPC | KVM_REG_PPC_TM_GPR31 | 64 1879 PPC | KVM_REG_PPC_TM_GPR31 | 64
@@ -2211,6 +2217,8 @@ KVM_S390_SIGP_STOP (vcpu) - sigp restart
2211KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm 2217KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm
2212KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm 2218KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm
2213KVM_S390_RESTART (vcpu) - restart 2219KVM_S390_RESTART (vcpu) - restart
2220KVM_S390_INT_CLOCK_COMP (vcpu) - clock comparator interrupt
2221KVM_S390_INT_CPU_TIMER (vcpu) - CPU timer interrupt
2214KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt 2222KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt
2215 parameters in parm and parm64 2223 parameters in parm and parm64
2216KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm 2224KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm
@@ -2314,8 +2322,8 @@ struct kvm_create_device {
2314 2322
23154.80 KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR 23234.80 KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR
2316 2324
2317Capability: KVM_CAP_DEVICE_CTRL 2325Capability: KVM_CAP_DEVICE_CTRL, KVM_CAP_VM_ATTRIBUTES for vm device
2318Type: device ioctl 2326Type: device ioctl, vm ioctl
2319Parameters: struct kvm_device_attr 2327Parameters: struct kvm_device_attr
2320Returns: 0 on success, -1 on error 2328Returns: 0 on success, -1 on error
2321Errors: 2329Errors:
@@ -2340,8 +2348,8 @@ struct kvm_device_attr {
2340 2348
23414.81 KVM_HAS_DEVICE_ATTR 23494.81 KVM_HAS_DEVICE_ATTR
2342 2350
2343Capability: KVM_CAP_DEVICE_CTRL 2351Capability: KVM_CAP_DEVICE_CTRL, KVM_CAP_VM_ATTRIBUTES for vm device
2344Type: device ioctl 2352Type: device ioctl, vm ioctl
2345Parameters: struct kvm_device_attr 2353Parameters: struct kvm_device_attr
2346Returns: 0 on success, -1 on error 2354Returns: 0 on success, -1 on error
2347Errors: 2355Errors:
@@ -2376,6 +2384,8 @@ Possible features:
2376 Depends on KVM_CAP_ARM_PSCI. 2384 Depends on KVM_CAP_ARM_PSCI.
2377 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode. 2385 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
2378 Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only). 2386 Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only).
2387 - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 for the CPU.
2388 Depends on KVM_CAP_ARM_PSCI_0_2.
2379 2389
2380 2390
23814.83 KVM_ARM_PREFERRED_TARGET 23914.83 KVM_ARM_PREFERRED_TARGET
@@ -2738,6 +2748,21 @@ It gets triggered whenever both KVM_CAP_PPC_EPR are enabled and an
2738external interrupt has just been delivered into the guest. User space 2748external interrupt has just been delivered into the guest. User space
2739should put the acknowledged interrupt vector into the 'epr' field. 2749should put the acknowledged interrupt vector into the 'epr' field.
2740 2750
2751 /* KVM_EXIT_SYSTEM_EVENT */
2752 struct {
2753#define KVM_SYSTEM_EVENT_SHUTDOWN 1
2754#define KVM_SYSTEM_EVENT_RESET 2
2755 __u32 type;
2756 __u64 flags;
2757 } system_event;
2758
2759If exit_reason is KVM_EXIT_SYSTEM_EVENT then the vcpu has triggered
2760a system-level event using some architecture specific mechanism (hypercall
2761or some special instruction). In case of ARM/ARM64, this is triggered using
2762HVC instruction based PSCI call from the vcpu. The 'type' field describes
2763the system-level event type. The 'flags' field describes architecture
2764specific flags for the system-level event.
2765
2741 /* Fix the size of the union. */ 2766 /* Fix the size of the union. */
2742 char padding[256]; 2767 char padding[256];
2743 }; 2768 };
diff --git a/Documentation/virtual/kvm/devices/vm.txt b/Documentation/virtual/kvm/devices/vm.txt
new file mode 100644
index 000000000000..0d16f96c0eac
--- /dev/null
+++ b/Documentation/virtual/kvm/devices/vm.txt
@@ -0,0 +1,26 @@
1Generic vm interface
2====================================
3
4The virtual machine "device" also accepts the ioctls KVM_SET_DEVICE_ATTR,
5KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. The interface uses the same
6struct kvm_device_attr as other devices, but targets VM-wide settings
7and controls.
8
9The groups and attributes per virtual machine, if any, are architecture
10specific.
11
121. GROUP: KVM_S390_VM_MEM_CTRL
13Architectures: s390
14
151.1. ATTRIBUTE: KVM_S390_VM_MEM_CTRL
16Parameters: none
17Returns: -EBUSY if already a vcpus is defined, otherwise 0
18
19Enables CMMA for the virtual machine
20
211.2. ATTRIBUTE: KVM_S390_VM_CLR_CMMA
22Parameteres: none
23Returns: 0
24
25Clear the CMMA status for all guest pages, so any pages the guest marked
26as unused are again used any may not be reclaimed by the host.
diff --git a/Documentation/virtual/kvm/ppc-pv.txt b/Documentation/virtual/kvm/ppc-pv.txt
index 4643cde517c4..319560646f32 100644
--- a/Documentation/virtual/kvm/ppc-pv.txt
+++ b/Documentation/virtual/kvm/ppc-pv.txt
@@ -94,10 +94,24 @@ a bitmap of available features inside the magic page.
94The following enhancements to the magic page are currently available: 94The following enhancements to the magic page are currently available:
95 95
96 KVM_MAGIC_FEAT_SR Maps SR registers r/w in the magic page 96 KVM_MAGIC_FEAT_SR Maps SR registers r/w in the magic page
97 KVM_MAGIC_FEAT_MAS0_TO_SPRG7 Maps MASn, ESR, PIR and high SPRGs
97 98
98For enhanced features in the magic page, please check for the existence of the 99For enhanced features in the magic page, please check for the existence of the
99feature before using them! 100feature before using them!
100 101
102Magic page flags
103================
104
105In addition to features that indicate whether a host is capable of a particular
106feature we also have a channel for a guest to tell the guest whether it's capable
107of something. This is what we call "flags".
108
109Flags are passed to the host in the low 12 bits of the Effective Address.
110
111The following flags are currently available for a guest to expose:
112
113 MAGIC_PAGE_FLAG_NOT_MAPPED_NX Guest handles NX bits correclty wrt magic page
114
101MSR bits 115MSR bits
102======== 116========
103 117
diff --git a/Documentation/virtual/kvm/s390-diag.txt b/Documentation/virtual/kvm/s390-diag.txt
index f1de4fbade15..48c4921794ed 100644
--- a/Documentation/virtual/kvm/s390-diag.txt
+++ b/Documentation/virtual/kvm/s390-diag.txt
@@ -78,3 +78,5 @@ DIAGNOSE function code 'X'501 - KVM breakpoint
78 78
79If the function code specifies 0x501, breakpoint functions may be performed. 79If the function code specifies 0x501, breakpoint functions may be performed.
80This function code is handled by userspace. 80This function code is handled by userspace.
81
82This diagnose function code has no subfunctions and uses no parameters.