diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-13 12:55:09 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-13 12:55:09 -0500 |
| commit | b9085bcbf5f43adf60533f9b635b2e7faeed0fe9 (patch) | |
| tree | e397abf5682a45c096e75b3d0fa99c8e228425fc | |
| parent | c7d7b98671552abade78834c522b7308bda73c0d (diff) | |
| parent | 6557bada461afeaa920a189fae2cff7c8fdce39f (diff) | |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM update from Paolo Bonzini:
"Fairly small update, but there are some interesting new features.
Common:
Optional support for adding a small amount of polling on each HLT
instruction executed in the guest (or equivalent for other
architectures). This can improve latency up to 50% on some
scenarios (e.g. O_DSYNC writes or TCP_RR netperf tests). This
also has to be enabled manually for now, but the plan is to
auto-tune this in the future.
ARM/ARM64:
The highlights are support for GICv3 emulation and dirty page
tracking
s390:
Several optimizations and bugfixes. Also a first: a feature
exposed by KVM (UUID and long guest name in /proc/sysinfo) before
it is available in IBM's hypervisor! :)
MIPS:
Bugfixes.
x86:
Support for PML (page modification logging, a new feature in
Broadwell Xeons that speeds up dirty page tracking), nested
virtualization improvements (nested APICv---a nice optimization),
usual round of emulation fixes.
There is also a new option to reduce latency of the TSC deadline
timer in the guest; this needs to be tuned manually.
Some commits are common between this pull and Catalin's; I see you
have already included his tree.
Powerpc:
Nothing yet.
The KVM/PPC changes will come in through the PPC maintainers,
because I haven't received them yet and I might end up being
offline for some part of next week"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (130 commits)
KVM: ia64: drop kvm.h from installed user headers
KVM: x86: fix build with !CONFIG_SMP
KVM: x86: emulate: correct page fault error code for NoWrite instructions
KVM: Disable compat ioctl for s390
KVM: s390: add cpu model support
KVM: s390: use facilities and cpu_id per KVM
KVM: s390/CPACF: Choose crypto control block format
s390/kernel: Update /proc/sysinfo file with Extended Name and UUID
KVM: s390: reenable LPP facility
KVM: s390: floating irqs: fix user triggerable endless loop
kvm: add halt_poll_ns module parameter
kvm: remove KVM_MMIO_SIZE
KVM: MIPS: Don't leak FPU/DSP to guest
KVM: MIPS: Disable HTW while in guest
KVM: nVMX: Enable nested posted interrupt processing
KVM: nVMX: Enable nested virtual interrupt delivery
KVM: nVMX: Enable nested apic register virtualization
KVM: nVMX: Make nested control MSRs per-cpu
KVM: nVMX: Enable nested virtualize x2apic mode
KVM: nVMX: Prepare for using hardware MSR bitmap
...
88 files changed, 6026 insertions, 1626 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 0007fef4ed81..b112efc816f1 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
| @@ -612,11 +612,14 @@ Type: vm ioctl | |||
| 612 | Parameters: none | 612 | Parameters: none |
| 613 | Returns: 0 on success, -1 on error | 613 | Returns: 0 on success, -1 on error |
| 614 | 614 | ||
| 615 | Creates an interrupt controller model in the kernel. On x86, creates a virtual | 615 | Creates an interrupt controller model in the kernel. |
| 616 | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a | 616 | On x86, creates a virtual ioapic, a virtual PIC (two PICs, nested), and sets up |
| 617 | local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 | 617 | future vcpus to have a local APIC. IRQ routing for GSIs 0-15 is set to both |
| 618 | only go to the IOAPIC. On ARM/arm64, a GIC is | 618 | PIC and IOAPIC; GSI 16-23 only go to the IOAPIC. |
| 619 | created. On s390, a dummy irq routing table is created. | 619 | On ARM/arm64, a GICv2 is created. Any other GIC versions require the usage of |
| 620 | KVM_CREATE_DEVICE, which also supports creating a GICv2. Using | ||
| 621 | KVM_CREATE_DEVICE is preferred over KVM_CREATE_IRQCHIP for GICv2. | ||
| 622 | On s390, a dummy irq routing table is created. | ||
| 620 | 623 | ||
| 621 | Note that on s390 the KVM_CAP_S390_IRQCHIP vm capability needs to be enabled | 624 | Note that on s390 the KVM_CAP_S390_IRQCHIP vm capability needs to be enabled |
| 622 | before KVM_CREATE_IRQCHIP can be used. | 625 | before KVM_CREATE_IRQCHIP can be used. |
| @@ -2312,7 +2315,7 @@ struct kvm_s390_interrupt { | |||
| 2312 | 2315 | ||
| 2313 | type can be one of the following: | 2316 | type can be one of the following: |
| 2314 | 2317 | ||
| 2315 | KVM_S390_SIGP_STOP (vcpu) - sigp restart | 2318 | KVM_S390_SIGP_STOP (vcpu) - sigp stop; optional flags in parm |
| 2316 | KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm | 2319 | KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm |
| 2317 | KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm | 2320 | KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm |
| 2318 | KVM_S390_RESTART (vcpu) - restart | 2321 | KVM_S390_RESTART (vcpu) - restart |
| @@ -3225,3 +3228,23 @@ userspace from doing that. | |||
| 3225 | If the hcall number specified is not one that has an in-kernel | 3228 | If the hcall number specified is not one that has an in-kernel |
| 3226 | implementation, the KVM_ENABLE_CAP ioctl will fail with an EINVAL | 3229 | implementation, the KVM_ENABLE_CAP ioctl will fail with an EINVAL |
| 3227 | error. | 3230 | error. |
