• Home
  • Raw
  • Download

Lines Matching +full:ipa +full:- +full:clock +full:- +full:enabled

1 The Definitive KVM (Kernel-based Virtual Machine) API Documentation
5 ----------------------
10 - System ioctls: These query and set global attributes which affect the
14 - VM ioctls: These query and set attributes that affect an entire virtual
21 - vcpu ioctls: These query and set attributes that control the operation
27 - device ioctls: These query and set attributes that control the operation
34 -------------------
55 -------------
59 facility that allows backward-compatible extensions to the API to be
69 ------------------
82 the ioctl returns -ENOTTY.
138 Returns: 0 on success; -1 on error
204 Returns: 0 on success, -1 on error
215 Returns: vcpu fd on success, -1 on error
221 the KVM_CHECK_EXTENSION ioctl() at run-time.
223 KVM_CAP_MAX_VCPUS of the KVM_CHECK_EXTENSION ioctl() at run-time.
231 KVM_CAP_MAX_VCPU_ID of the KVM_CHECK_EXTENSION ioctl() at run-time.
246 single-threaded guest vcpus, it should make all vcpu ids be a multiple
261 Returns: 0 on success, -1 on error
278 If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
290 Returns: 0 (success), -1 (error)
301 Returns: 0 on success, -1 on error
318 Returns: 0 on success, -1 on error
348 Returns: 0 on success, -1 on error
361 Returns: 0 on success, -1 on error
376 /* ppc -- see arch/powerpc/include/uapi/asm/kvm.h */
389 Returns: 0 on success, -1 on error
401 Returns: 0 on success, -1 on error
438 -EEXIST if an interrupt is already enqueued
439 -EINVAL the the irq number is invalid
440 -ENXIO if the PIC is in the kernel
441 -EFAULT if the pointer is invalid
444 ioctl is useful if the in-kernel PIC is not used.
485 Returns: -1 on error
497 -1 on error
500 Reads the values of MSR-based features that are available for the VM. This
502 The list of msr-based features can be obtained using KVM_GET_MSR_FEATURE_INDEX_LIST
506 Reads model-specific registers from the vcpu. Supported msr indices can
533 Returns: 0 on success, -1 on error
535 Writes model-specific registers to the vcpu. See KVM_GET_MSRS for the
549 Returns: 0 on success, -1 on error
578 Returns: 0 on success, -1 on error
583 their traditional behaviour) will cause KVM_RUN to return with -EINTR.
601 Returns: 0 on success, -1 on error
627 Returns: 0 on success, -1 on error
653 Returns: 0 on success, -1 on error
657 future vcpus to have a local APIC. IRQ routing for GSIs 0-15 is set to both
658 PIC and IOAPIC; GSI 16-23 only go to the IOAPIC.
664 Note that on s390 the KVM_CAP_S390_IRQCHIP vm capability needs to be enabled
674 Returns: 0 on success, -1 on error
678 been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered
681 On real hardware, interrupt pins can be active-low or active-high. This
686 (active-low/active-high) for level-triggered interrupts, and KVM used
688 active-low interrupts, the above convention is now valid on x86 too.
690 should not present interrupts to the guest as active-low unless this
691 capability is present (or unless it is not using the in-kernel irqchip,
696 in-kernel irqchip (GIC), and for in-kernel irqchip can tell the GIC to
704 - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ
705 - irq_type[1]: in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.)
707 - irq_type[2]: in-kernel GIC: PPI, irq_id between 16 and 31 (incl.)
728 Returns: 0 on success, -1 on error
750 Returns: 0 on success, -1 on error
772 Returns: 0 on success, -1 on error
777 page of a blob (32- or 64-bit, depending on the vcpu mode) to guest
797 Returns: 0 on success, -1 on error
810 with KVM_SET_CLOCK. KVM will try to make all VCPUs follow this clock,
815 __u64 clock; /* kvmclock current value */
827 Returns: 0 on success, -1 on error
834 __u64 clock; /* kvmclock current value */
847 Returns: 0 on success, -1 on error
886 - KVM_VCPUEVENT_VALID_SHADOW may be set in the flags field to signal that
889 - KVM_VCPUEVENT_VALID_SMM may be set in the flags field to signal that
906 guest-visible registers. It is not possible to 'cancel' an SError that has been
909 A device being emulated in user-space may also wish to generate an SError. To do
910 this the events structure can be populated by user-space. The current state
919 always have a non-zero value when read, and the agent making an SError pending
921 the system supports KVM_CAP_ARM_INJECT_SERROR_ESR, but user-space sets the events
925 -EINVAL. Setting anything other than the lower 24bits of exception.serror_esr
926 will return -EINVAL.
946 Returns: 0 on success, -1 on error
958 suppress overwriting the current in-kernel state. The bits are:
960 KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
961 KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
962 KVM_VCPUEVENT_VALID_SMM - transfer the smi sub-struct.
984 Returns: 0 on success, -1 on error
1003 Returns: 0 on success, -1 on error
1017 Returns: 0 on success, -1 on error
1035 Bits 0-15 of "slot" specifies the slot id and this value should be
1040 If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of "slot"
1060 to make a new slot read-only. In this case, writes to this memory will be
1079 Returns: 0 on success, -1 on error
1081 This ioctl defines the physical address of a three-page region in the guest
1087 This ioctl is required on Intel-based hosts. This is needed on Intel hardware
1099 Returns: 0 on success; -1 on error
1101 +Not all extensions are enabled by default. Using this ioctl the application
1107 To check if a capability can be enabled, the KVM_CHECK_EXTENSION ioctl should
1114 The capability that is supposed to get enabled.
1128 The vcpu ioctl should be used for vcpu-specific capabilities, the vm ioctl
1129 for vm-wide capabilities.
1137 Returns: 0 on success; -1 on error
1148 - KVM_MP_STATE_RUNNABLE: the vcpu is currently running [x86,arm/arm64]
1149 - KVM_MP_STATE_UNINITIALIZED: the vcpu is an application processor (AP)
1151 - KVM_MP_STATE_INIT_RECEIVED: the vcpu has received an INIT signal, and is
1153 - KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and
1155 - KVM_MP_STATE_SIPI_RECEIVED: the vcpu has just received a SIPI (vector
1157 - KVM_MP_STATE_STOPPED: the vcpu is stopped [s390,arm/arm64]
1158 - KVM_MP_STATE_CHECK_STOP: the vcpu is in a special error state [s390]
1159 - KVM_MP_STATE_OPERATING: the vcpu is operating (running or halted)
1161 - KVM_MP_STATE_LOAD: the vcpu is in a special load/startup state
1165 in-kernel irqchip, the multiprocessing state must be maintained by userspace on
1179 Returns: 0 on success; -1 on error
1185 in-kernel irqchip, the multiprocessing state must be maintained by userspace on
1199 Returns: 0 on success, -1 on error
1201 This ioctl defines the physical address of a one-page region in the guest
1210 This ioctl is required on Intel-based hosts. This is needed on Intel hardware
1222 Returns: 0 on success, -1 on error
1235 Returns: 0 on success, -1 on error
1250 Returns: 0 on success, -1 on error
1265 Returns: 0 on success, -1 on error
1289 Returns: 0 on success, -1 on error
1313 Returns: 0 on success, -1 on error
1350 with the 'nent' field indicating the number of entries in the variable-size
1421 Returns: 0 on success, -1 on error
1426 - GSI routing does not apply to KVM_IRQ_LINE but only to KVM_IRQFD.
1457 - KVM_MSI_VALID_DEVID: used along with KVM_IRQ_ROUTING_MSI routing entry
1458 type, specifies that the devid field contains a valid value. The per-VM
1462 - zero otherwise
1484 feature of KVM_CAP_X2APIC_API capability is enabled. If it is enabled,
1485 address_hi bits 31-8 provide bits 31-8 of the destination id. Bits 7-0 of
1508 Returns: 0 on success, -1 on error
1520 Returns: virtual tsc-khz on success, negative value on error
1523 KHz. If the host has unstable tsc this ioctl returns -EIO instead as an
1533 Returns: 0 on success, -1 on error
1544 enabled, then the format of APIC_ID register depends on the APIC mode
1546 the APIC_ID register (bytes 32-35). xAPIC only allows an 8-bit APIC ID
1547 which is stored in bits 31-24 of the APIC register, or equivalently in
1561 Returns: 0 on success, -1 on error
1571 The format of the APIC ID register (bytes 32-35 of struct kvm_lapic_state's
1597 For the special case of virtio-ccw devices on s390, the ioevent is matched
1611 For virtio-ccw devices, addr contains the subchannel id and datamatch the
1625 Returns: 0 on success, -1 on error
1643 The array is little-endian: the bit 0 is the least significant bit of the
1661 is an IOMMU for PAPR-style virtual I/O. It is used to translate
1673 which this TCE table will translate - the table will contain one 64
1683 the entries written by kernel-handled H_PUT_TCE calls, and also lets
1697 time by the kernel. An RMA is a physically-contiguous, aligned region
1699 will be accessed by real-mode (MMU off) accesses in a KVM guest.
1727 Returns: 0 on success, -1 on error
1737 - pause the vcpu
1738 - read the local APIC's state (KVM_GET_LAPIC)
1739 - check whether changing LINT1 will queue an NMI (see the LVT entry for LINT1)
1740 - if so, issue KVM_NMI
1741 - resume the vcpu
2018 ARM 32-bit CP15 registers have the following id bit patterns:
2021 ARM 64-bit CP15 registers have the following id bit patterns:
2027 ARM 32-bit VFP control registers have the following id bit patterns:
2030 ARM 64-bit FP registers have the following id bit patterns:
2033 ARM firmware pseudo-registers have the following bit pattern:
2040 arm64 core/FP-SIMD registers have the following id bit patterns. Note
2052 arm64 firmware pseudo-registers have the following bit pattern:
2063 patterns depending on whether they're 32-bit or 64-bit registers:
2064 0x7020 0000 0001 00 <reg:5> <sel:3> (32-bit)
2065 0x7030 0000 0001 00 <reg:5> <sel:3> (64-bit)
2087 0x7020 0000 0003 00 <0:3> <reg:5> (32-bit FPU registers)
2088 0x7030 0000 0003 00 <0:3> <reg:5> (64-bit FPU registers)
2089 0x7040 0000 0003 00 <0:3> <reg:5> (128-bit MSA vector registers)
2123 Returns: 0 on success, -1 on error
2132 load-link/store-conditional, or equivalent must be used. There are two cases
2144 Returns: >0 on delivery, 0 if guest blocked the MSI, and -1 on error
2146 Directly inject a MSI message. Only valid with in-kernel irqchip that handles
2158 flags: KVM_MSI_VALID_DEVID: devid contains a valid value. The per-VM
2168 feature of KVM_CAP_X2APIC_API capability is enabled. If it is enabled,
2169 address_hi bits 31-8 provide bits 31-8 of the destination id. Bits 7-0 of
2179 Returns: 0 on success, -1 on error
2181 Creates an in-kernel device model for the i8254 PIT. This call is only valid
2182 after enabling in-kernel irqchip support via KVM_CREATE_IRQCHIP. The following
2194 PIT timer interrupts may use a per-VM kernel thread for injection. If it
2197 kvm-pit/<owner-process-pid>
2211 Returns: 0 on success, -1 on error
2213 Retrieves the state of the in-kernel PIT model. Only valid after
2236 Returns: 0 on success, -1 on error
2238 Sets the state of the in-kernel PIT model. Only valid after KVM_CREATE_PIT2.
2250 Returns: 0 on success, -1 on error
2255 device-tree properties for the guest operating system.
2269 - KVM_PPC_PAGE_SIZES_REAL:
2274 - KVM_PPC_1T_SEGMENTS
2320 Returns: 0 on success, -1 on error
2330 With KVM_CAP_IRQFD_RESAMPLE, KVM_IRQFD supports a de-assert and notify
2331 mechanism allowing emulation of level-triggered, irqfd-based
2336 as from an EOI, the gsi is de-asserted and the user is notified via
2337 kvm_irqfd.resamplefd. It is the user's responsibility to re-queue
2344 - in case no routing entry is associated to this gsi, injection fails
2345 - in case the gsi is associated to an irqchip routing entry,
2347 - in case the gsi is associated to an MSI routing entry, the MSI
2349 to GICv3 ITS in-kernel emulation).
2357 Returns: 0 on success, -1 on error
2369 The parameter is a pointer to a 32-bit unsigned integer variable
2376 default-sized hash table (16 MB).
2384 real-mode area (VRMA) facility, the kernel will re-create the VMRA
2393 Returns: 0 on success, -1 on error
2408 KVM_S390_SIGP_STOP (vcpu) - sigp stop; optional flags in parm
2409 KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm
2410 KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm
2411 KVM_S390_RESTART (vcpu) - restart
2412 KVM_S390_INT_CLOCK_COMP (vcpu) - clock comparator interrupt
2413 KVM_S390_INT_CPU_TIMER (vcpu) - CPU timer interrupt
2414 KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt
2416 KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm
2417 KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm
2418 KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm
2419 KVM_S390_INT_IO(ai,cssid,ssid,schid) (vm) - compound value to indicate an
2420 I/O interrupt (ai - adapter interrupt; cssid,ssid,schid - subchannel);
2423 KVM_S390_MCHK (vm, vcpu) - machine check interrupt; cr 14 bits in parm,
2436 Returns: file descriptor number (>= 0) on success, -1 on error
2489 Returns: 0 on success, -1 on error
2521 Returns: 0 on success, -1 on error
2526 (e.g. read-only attribute, or attribute that only makes
2532 semantics are device-specific. See individual device documentation in
2538 __u32 group; /* device-defined */
2539 __u64 attr; /* group-defined */
2549 Returns: 0 on success, -1 on error
2565 Returns: 0 on success; -1 on error
2584 - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state.
2587 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
2589 - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 (or a future revision
2592 - KVM_ARM_VCPU_PMU_V3: Emulate PMUv3 for the CPU.
2602 Returns: 0 on success; -1 on error
2611 kvm_vcpu_init->features bitmap returned will have feature bits set if
2626 Returns: 0 on success; -1 on error
2646 Returns: 0 on success, -1 on error
2670 ARM/arm64 currently only require this when using the in-kernel GIC
2676 base addresses will return -EEXIST.
2688 Returns: 0 on success, -1 on error
2693 of a service that has a kernel-side implementation. If the token
2694 value is non-zero, it will be associated with that service, and
2707 Returns: 0 on success; -1 on error
2720 - KVM_GUESTDBG_ENABLE: guest debugging is enabled
2721 - KVM_GUESTDBG_SINGLESTEP: the next run should single-step
2726 - KVM_GUESTDBG_USE_SW_BP: using software breakpoints [x86, arm64]
2727 - KVM_GUESTDBG_USE_HW_BP: using hardware breakpoints [x86, s390, arm64]
2728 - KVM_GUESTDBG_INJECT_DB: inject DB type exception [x86]
2729 - KVM_GUESTDBG_INJECT_BP: inject BP type exception [x86]
2730 - KVM_GUESTDBG_EXIT_PENDING: trigger an immediate guest exit [s390]
2733 are enabled in memory so we need to ensure breakpoint exceptions are
2757 Returns: 0 on success, -1 on error
2788 the variable-size array 'entries'. If the number of entries is too low
2828 < 0 on generic error (e.g. -EFAULT or -ENOMEM),
2893 will cause the ioctl to return -EINVAL.
2916 will cause the ioctl to return -EINVAL.
2923 the ioctl will return -EINVAL.
2931 Returns: 0 on success, -1 on error
2967 KVM_S390_SIGP_STOP - sigp stop; parameter in .stop
2968 KVM_S390_PROGRAM_INT - program check; parameters in .pgm
2969 KVM_S390_SIGP_SET_PREFIX - sigp set prefix; parameters in .prefix
2970 KVM_S390_RESTART - restart; no parameters
2971 KVM_S390_INT_CLOCK_COMP - clock comparator interrupt; no parameters
2972 KVM_S390_INT_CPU_TIMER - CPU timer interrupt; no parameters
2973 KVM_S390_INT_EMERGENCY - sigp emergency; parameters in .emerg
2974 KVM_S390_INT_EXTERNAL_CALL - sigp external call; parameters in .extcall
2975 KVM_S390_MCHK - machine check interrupt; parameters in .mchk
2987 -EINVAL if buffer size is 0,
2988 -ENOBUFS if buffer size is too small to fit all pending interrupts,
2989 -EFAULT if the buffer address was invalid
3007 the kernel never checked for flags == 0 and QEMU never pre-zeroed flags and
3011 If -ENOBUFS is returned the buffer provided was too small and userspace
3021 -EFAULT if the buffer address was invalid,
3022 -EINVAL for an invalid buffer length (see below),
3023 -EBUSY if there were already interrupts pending,
3027 This ioctl allows userspace to set the complete state of all cpu-local
3049 which is the maximum number of possibly pending cpu-local interrupts.
3057 Returns: 0 on success, -1 on error
3076 IBM pSeries (sPAPR) guest starts using them if "hcall-multi-tce" is
3077 present in the "ibm,hypertas-functions" device-tree property.
3084 This capability is always enabled.
3125 -EFAULT if struct kvm_reinject_control cannot be read,
3126 -ENXIO if KVM_CREATE_PIT or KVM_CREATE_PIT2 didn't succeed earlier.
3149 -EFAULT if struct kvm_ppc_mmuv3_cfg cannot be read,
3150 -EINVAL if the configuration is invalid
3180 -EFAULT if struct kvm_ppc_rmmu_info cannot be written,
3181 -EINVAL if no useful information can be returned
3216 -EFAULT if struct kvm_reinject_control cannot be read,
3217 -EINVAL if the supplied shift or flags are invalid
3218 -ENOMEM if unable to allocate the new HPT
3219 -ENOSPC if there was a hash collision when moving existing
3221 -EIO on other error conditions
3245 returns 0 (i.e. cancels any in-progress preparation).
3248 flags will result in an -EINVAL.
3267 -EFAULT if struct kvm_reinject_control cannot be read,
3268 -EINVAL if the supplied shift or flags are invalid
3269 -ENXIO is there is no pending HPT, or the pending HPT doesn't
3271 -EBUSY if the pending HPT is not fully prepared
3272 -ENOSPC if there was a hash collision when moving existing
3274 -EIO on other error conditions
3283 KVM_PPC_RESIZE_HPT_COMMIT will return an error (usually -ENXIO or
3284 -EBUSY, though others may be possible if the preparation was started,
3288 placed itself in a quiescent state where no vcpu will make MMU enabled
3308 Returns: 0 on success, -1 on error
3321 -EFAULT if u64 mcg_cap cannot be read,
3322 -EINVAL if the requested number of banks is invalid,
3323 -EINVAL if requested MCE capability is not supported.
3327 specifies which capabilities should be enabled. The maximum
3328 supported number of error-reporting banks can be retrieved when
3339 -EFAULT if struct kvm_x86_mce cannot be read,
3340 -EINVAL if the bank number is invalid,
3341 -EINVAL if VAL bit is not set in status field.
3375 - During live migration to save the CMMA values. Live migration needs
3376 to be enabled via the KVM_REQ_START_MIGRATION VM property.
3377 - To non-destructively peek at the CMMA values, with the flag
3405 KVM_S390_SKEYS_MAX. KVM_S390_SKEYS_MAX is re-used for consistency with
3443 not enabled.
3449 This ioctl can fail with -ENOMEM if not enough memory can be allocated to
3450 complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
3451 KVM_S390_CMMA_PEEK is not set but migration mode was not enabled, with
3452 -EFAULT if the userspace address is invalid or if no page table is
3492 This ioctl can fail with -ENOMEM if not enough memory can be allocated to
3493 complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
3495 if the flags field was not 0, with -EFAULT if the userspace address is
3507 -EFAULT if struct kvm_ppc_cpu_char cannot be written
3512 CVE-2017-5715, CVE-2017-5753 and CVE-2017-5754). The information is
3529 with preventing inadvertent information disclosure - specifically,
3530 whether there is an instruction to flash-invalidate the L1 data cache
3552 Returns: 0 on success; -1 on error
3555 for issuing platform-specific memory encryption commands to manage those
3560 Documentation/virtual/kvm/amd-memory-encryption.rst.
3568 Returns: 0 on success; -1 on error
3573 It is used in the SEV-enabled guest. When encryption is enabled, a guest
3591 Returns: 0 on success; -1 on error
3604 the specified Hyper-V connection id through the SIGNAL_EVENT hypercall, without
3605 causing a user exit. SIGNAL_EVENT hypercall with non-zero event flag number
3606 (bits 24-31) still triggers a KVM_EXIT_HYPERV_HCALL user exit.
3624 -EINVAL if conn_id or flags is outside the allowed range
3625 -ENOENT on deassign if the conn_id isn't registered
3626 -EEXIST on assign if the conn_id is already registered
3634 Returns: 0 on success, -1 on error
3636 E2BIG: the total state size (including the fixed-size part of struct
3670 The maximum size of the state, including the fixed-size part of struct
3680 Returns: 0 on success, -1 on error
3686 ------------------------
3703 This field is polled once when KVM_RUN starts; if non-zero, KVM_RUN
3704 exits immediately, returning -EINTR. In the common scenario where a
3708 a signal handler that sets run->immediate_exit to a non-zero value.
3728 The value of the current interrupt flag. Only valid if in-kernel
3733 More architecture-specific flags detailing state of the VCPU that may
3741 The value of the cr8 register. Only valid if in-kernel local APIC is
3746 The value of the APIC BASE msr. Only valid if in-kernel local
3756 reasons. Further architecture-specific information is available in
3765 to unknown reasons. Further architecture-specific information is
3810 executed a memory-mapped I/O instruction which could not be satisfied
3821 has re-entered the kernel with KVM_RUN. The kernel side will first finish
3823 can re-enter the guest with an unmasked signal pending to complete
3853 __u16 ipa;
3890 Deprecated - was used for 440 KVM.
3912 This is used on 64-bit PowerPC when emulating a pSeries partition,
3916 the arguments (from the guest R4 - R12). Userspace should put the
3932 s390 specific. This exit occurs when KVM_CAP_S390_CSS_SUPPORT has been enabled
3953 It gets triggered whenever both KVM_CAP_PPC_EPR are enabled and an
3967 a system-level event using some architecture specific mechanism (hypercall
3970 the system-level event type. The 'flags' field describes architecture
3971 specific flags for the system-level event.
3974 KVM_SYSTEM_EVENT_SHUTDOWN -- the guest has requested a shutdown of the
3978 KVM_SYSTEM_EVENT_RESET -- the guest has requested a reset of the VM.
3981 KVM_SYSTEM_EVENT_CRASH -- the guest crash occurred and the guest
3991 Indicates that the VCPU's in-kernel local APIC received an EOI for a
3992 level-triggered IOAPIC interrupt. This exit only triggers when the
3993 IOAPIC is implemented in userspace (i.e. KVM_CAP_SPLIT_IRQCHIP is enabled);
4021 related to Hyper-V emulation.
4023 KVM_EXIT_HYPERV_SYNIC -- synchronously notify user-space about
4024 Hyper-V SynIC state change. Notification is used to remap SynIC
4062 6. Capabilities that can be enabled on vCPUs
4063 --------------------------------------------
4066 the virtual machine when enabled. To enable them, please see section 4.37.
4075 Target: whether this is a per-vcpu or per-vm capability.
4088 Returns: 0 on success; -1 on error
4092 were invented by Mac-on-Linux to have a standardized communication mechanism
4095 When this capability is enabled, KVM_EXIT_OSI can occur.
4103 Returns: 0 on success; -1 on error
4115 When this capability is enabled, KVM_EXIT_PAPR_HCALL can occur.
4123 Returns: 0 on success; -1 on error
4134 addresses of mmu-type-specific data structures. The "array_len" field is an
4149 - The "params" field is of type "struct kvm_book3e_206_tlb_params".
4150 - The "array" field points to an array of type "struct
4152 - The array consists of all entries in the first TLB, followed by all
4154 - Within a TLB, entries are ordered first by increasing set number. Within a
4156 - The hash for determining set number in TLB0 is: (MAS2 >> 12) & (num_sets - 1)
4158 - The tsize field of mas1 shall be set to 4K on TLB0, even though the
4166 Returns: 0 on success; -1 on error
4171 handled in-kernel, while the other I/O instructions are passed to userspace.
4173 When this capability is enabled, KVM_EXIT_S390_TSCH will occur on TEST
4176 Note that even though this capability is enabled per-vcpu, the complete
4184 Returns: 0 on success; -1 on error
4189 When enabled (args[0] != 0), every time the guest gets an external interrupt
4195 When this capability is enabled, KVM_EXIT_EPR can occur.
4203 This capability connects the vcpu to an in-kernel MPIC device.
4212 This capability connects the vcpu to an in-kernel XICS device.
4220 This capability enables the in-kernel irqchip for s390. Please refer to
4250 Target: s390: always enabled, x86: vcpu
4252 Returns: x86: KVM_CHECK_EXTENSION returns a bit-array indicating which register
4266 - the register sets to be copied out to kvm_run are selectable
4268 - vcpu_events are available in addition to regs and sregs.
4271 function as an input bit-array field set by userspace to indicate the
4288 7. Capabilities that can be enabled on VMs
4289 ------------------------------------------
4292 machine when enabled. To enable them, please see section 4.37. Below
4311 args[1] is 0 to disable, 1 to enable in-kernel handling
4314 get handled by the kernel or not. Enabling or disabling in-kernel
4316 initial set of hcalls are enabled for in-kernel handling, which
4317 consists of those hcalls for which in-kernel handlers were implemented
4324 If the hcall number specified is not one that has an in-kernel
4334 space. With this capability enabled, all fast orders will be handled completely
4336 - SENSE
4337 - SENSE RUNNING
4338 - EXTERNAL CALL
4339 - EMERGENCY SIGNAL
4340 - CONDITIONAL EMERGENCY SIGNAL
4345 in the hardware prior to interception). If this capability is not enabled, the
4356 return -EINVAL if the machine does not support vectors.
4363 This capability allows post-handlers for the STSI instruction. After
4368 vcpu->run:
4378 @addr - guest address of STSI SYSIB
4379 @fc - function code
4380 @sel1 - selector 1
4381 @sel2 - selector 2
4382 @ar - access register number
4384 KVM handlers should exit to userspace with rc = -EREMOTE.
4389 Parameters: args[0] - number of routes reserved for userspace IOAPICs
4390 Returns: 0 on success, -1 on error
4394 IOAPIC and PIC (and also the PIT, even though this has to be enabled
4411 Allows use of runtime-instrumentation introduced with zEC12 processor.
4412 Will return -EINVAL if the machine does not support runtime-instrumentation.
4413 Will return -EBUSY if a VCPU has already been created.
4418 Parameters: args[0] - features that should be enabled
4419 Returns: 0 on success, -EINVAL when args[0] contains invalid features
4428 allowing the use of 32-bit APIC IDs. See KVM_CAP_X2APIC_API in their
4431 KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK must be enabled for x2APIC to work
4435 where 0xff represents CPUs 0-7 in cluster 0.
4442 With this capability enabled, all illegal instructions 0x0000 (2 bytes) will
4444 mechanism e.g. to realize 2-byte software breakpoints. The kernel will
4448 This capability can be enabled dynamically even if VCPUs were already
4455 Returns: 0 on success; -EINVAL if the machine does not support
4456 guarded storage; -EBUSY if a VCPU has already been created.
4465 Allow use of adapter-interruption suppression.
4466 Returns: 0 on success; -EBUSY if a VCPU has already been created.
4500 Returns: 0 on success, -EINVAL when args[0] contains invalid exits
4520 Returns: 0 on success, -EINVAL if hpage module parameter was not set
4521 or cmma is enabled, or the VM has the KVM_VM_S390_UCONTROL
4525 through hugetlbfs can be enabled for a VM. After the capability is
4526 enabled, cmma can't be enabled anymore and pfmfi and the storage key
4527 interpretation are disabled. If cmma has already been enabled or the
4528 hpage module parameter is not set to 1, -EINVAL is returned.
4536 Parameters: args[0] whether feature should be enabled or not
4543 ----------------------
4554 H_RANDOM hypercall backed by a hardware random-number generator.
4555 If present, the kernel H_RANDOM handler can be enabled for guest use
4563 Hyper-V Synthetic interrupt controller(SynIC). Hyper-V SynIC is
4564 used to support Windows Hyper-V based guest paravirt drivers(VMBus).
4569 by the CPU, as it's incompatible with SynIC auto-EOI behavior.
4587 the POWER9 processor), including in-memory segment tables.
4642 Both registers and addresses are 32-bits wide.
4643 It will only be possible to run 32-bit guest code.
4645 1: MIPS64 or microMIPS64 with access only to 32-bit compatibility segments.
4646 Registers are 64-bits wide, but addresses are 32-bits wide.
4647 64-bit guest code may run but cannot access MIPS64 memory segments.
4648 It will also be possible to run 32-bit guest code.
4651 Both registers and addresses are 64-bits wide.
4652 It will be possible to run 64-bit or 32-bit guest code.
4658 that if userspace creates a VM without an in-kernel interrupt controller, it
4659 will be notified of changes to the output level of in-kernel emulated devices,
4662 updates the vcpu's run->s.regs.device_irq_level field to represent the actual
4668 userspace can always sample the device output level and re-compute the state of
4670 of run->s.regs.device_irq_level on every kvm exit.
4671 The value in run->s.regs.device_irq_level can represent both level and edge
4673 signals will exit to userspace with the bit in run->s.regs.device_irq_level
4676 The field run->s.regs.device_irq_level is available independent of
4677 run->kvm_valid_regs or run->kvm_dirty_regs bits.
4681 and thereby which bits in in run->s.regs.device_irq_level can signal values.
4687 KVM_ARM_DEV_EL1_VTIMER - EL1 virtual timer
4688 KVM_ARM_DEV_EL1_PTIMER - EL1 physical timer
4689 KVM_ARM_DEV_PMU - ARM PMU overflow interrupt signal
4708 This capability enables a newer version of Hyper-V Synthetic interrupt
4710 doesn't clear SynIC message and event flags pages when they are enabled by
4750 use copy-on-write semantics as well as dirty pages tracking via read-only page
4765 This capability indicates that KVM supports paravirtualized Hyper-V TLB Flush