diff options
74 files changed, 1827 insertions, 769 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 758bf403a169..495b7742ab58 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
| @@ -1269,12 +1269,18 @@ struct kvm_cpuid_entry2 { | |||
| 1269 | __u32 padding[3]; | 1269 | __u32 padding[3]; |
| 1270 | }; | 1270 | }; |
| 1271 | 1271 | ||
| 1272 | This ioctl returns x86 cpuid features which are supported by both the hardware | 1272 | This ioctl returns x86 cpuid features which are supported by both the |
| 1273 | and kvm. Userspace can use the information returned by this ioctl to | 1273 | hardware and kvm in its default configuration. Userspace can use the |
| 1274 | construct cpuid information (for KVM_SET_CPUID2) that is consistent with | 1274 | information returned by this ioctl to construct cpuid information (for |
| 1275 | hardware, kernel, and userspace capabilities, and with user requirements (for | 1275 | KVM_SET_CPUID2) that is consistent with hardware, kernel, and |
| 1276 | example, the user may wish to constrain cpuid to emulate older hardware, | 1276 | userspace capabilities, and with user requirements (for example, the |
| 1277 | or for feature consistency across a cluster). | 1277 | user may wish to constrain cpuid to emulate older hardware, or for |
| 1278 | feature consistency across a cluster). | ||
| 1279 | |||
| 1280 | Note that certain capabilities, such as KVM_CAP_X86_DISABLE_EXITS, may | ||
| 1281 | expose cpuid features (e.g. MONITOR) which are not supported by kvm in | ||
| 1282 | its default configuration. If userspace enables such capabilities, it | ||
| 1283 | is responsible for modifying the results of this ioctl appropriately. | ||
| 1278 | 1284 | ||
| 1279 | Userspace invokes KVM_GET_SUPPORTED_CPUID by passing a kvm_cpuid2 structure | 1285 | Userspace invokes KVM_GET_SUPPORTED_CPUID by passing a kvm_cpuid2 structure |
| 1280 | with the 'nent' field indicating the number of entries in the variable-size | 1286 | with the 'nent' field indicating the number of entries in the variable-size |
| @@ -4603,3 +4609,12 @@ Architectures: s390 | |||
| 4603 | This capability indicates that kvm will implement the interfaces to handle | 4609 | This capability indicates that kvm will implement the interfaces to handle |
| 4604 | reset, migration and nested KVM for branch prediction blocking. The stfle | 4610 | reset, migration and nested KVM for branch prediction blocking. The stfle |
| 4605 | facility 82 should not be provided to the guest without this capability. | 4611 | facility 82 should not be provided to the guest without this capability. |
| 4612 | |||
| 4613 | 8.14 KVM_CAP_HYPERV_TLBFLUSH | ||
| 4614 | |||
| 4615 | Architectures: x86 | ||
| 4616 | |||
| 4617 | This capability indicates that KVM supports paravirtualized Hyper-V TLB Flush | ||
| 4618 | hypercalls: | ||
| 4619 | HvFlushVirtualAddressSpace, HvFlushVirtualAddressSpaceEx, | ||
| 4620 | HvFlushVirtualAddressList, HvFlushVirtualAddressListEx. | ||
diff --git a/Documentation/virtual/kvm/devices/arm-vgic-v3.txt b/Documentation/virtual/kvm/devices/arm-vgic-v3.txt index 9293b45abdb9..2408ab720ef7 100644 --- a/Documentation/virtual/kvm/devices/arm-vgic-v3.txt +++ b/Documentation/virtual/kvm/devices/arm-vgic-v3.txt | |||
| @@ -27,16 +27,42 @@ Groups: | |||
| 27 | VCPU and all of the redistributor pages are contiguous. | 27 | VCPU and all of the redistributor pages are contiguous. |
| 28 | Only valid for KVM_DEV_TYPE_ARM_VGIC_V3. | 28 | Only valid for KVM_DEV_TYPE_ARM_VGIC_V3. |
| 29 | This address needs to be 64K aligned. | 29 | This address needs to be 64K aligned. |
| 30 | |||
| 31 | KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION (rw, 64-bit) | ||
| 32 | The attribute data pointed to by kvm_device_attr.addr is a __u64 value: | ||
| 33 | bits: | 63 .... 52 | 51 .... 16 | 15 - 12 |11 - 0 | ||
| 34 | values: | count | base | flags | index | ||
| 35 | - index encodes the unique redistributor region index | ||
| 36 | - flags: reserved for future use, currently 0 | ||
| 37 | - base field encodes bits [51:16] of the guest physical base address | ||
| 38 | of the first redistributor in the region. | ||
| 39 | - count encodes the number of redistributors in the region. Must be | ||
| 40 | greater than 0. | ||
| 41 | There are two 64K pages for each redistributor in the region and | ||
| 42 | redistributors are laid out contiguously within the region. Regions | ||
| 43 | are filled with redistributors in the index order. The sum of all | ||
| 44 | region count fields must be greater than or equal to the number of | ||
| 45 | VCPUs. Redistributor regions must be registered in the incremental | ||
| 46 | index order, starting from index 0. | ||
| 47 | The characteristics of a specific redistributor region can be read | ||
| 48 | by presetting the index field in the attr data. | ||
| 49 | Only valid for KVM_DEV_TYPE_ARM_VGIC_V3. | ||
| 50 | |||
| 51 | It is invalid to mix calls with KVM_VGIC_V3_ADDR_TYPE_REDIST and | ||
| 52 | KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION attributes. | ||
| 53 | |||
| 30 | Errors: | 54 | Errors: |
| 31 | -E2BIG: Address outside of addressable IPA range | 55 | -E2BIG: Address outside of addressable IPA range |
| 32 | -EINVAL: Incorrectly aligned address | 56 | -EINVAL: Incorrectly aligned address, bad redistributor region |
| 57 | count/index, mixed redistributor region attribute usage | ||
| 33 | -EEXIST: Address already configured | 58 | -EEXIST: Address already configured |
| 59 | -ENOENT: Attempt to read the characteristics of a non existing | ||
| 60 | redistributor region | ||
| 34 | -ENXIO: The group or attribute is unknown/unsupported for this device | 61 | -ENXIO: The group or attribute is unknown/unsupported for this device |
| 35 | or hardware support is missing. | 62 | or hardware support is missing. |
| 36 | -EFAULT: Invalid user pointer for attr->addr. | 63 | -EFAULT: Invalid user pointer for attr->addr. |
| 37 | 64 | ||
| 38 | 65 | ||
