vcpu.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. Generic vcpu interface
  2. ====================================
  3. The virtual cpu "device" also accepts the ioctls KVM_SET_DEVICE_ATTR,
  4. KVM_GET_DEVICE_ATTR, and KVM_HAS_DEVICE_ATTR. The interface uses the same struct
  5. kvm_device_attr as other devices, but targets VCPU-wide settings and controls.
  6. The groups and attributes per virtual cpu, if any, are architecture specific.
  7. 1. GROUP: KVM_ARM_VCPU_PMU_V3_CTRL
  8. Architectures: ARM64
  9. 1.1. ATTRIBUTE: KVM_ARM_VCPU_PMU_V3_IRQ
  10. Parameters: in kvm_device_attr.addr the address for PMU overflow interrupt is a
  11. pointer to an int
  12. Returns: -EBUSY: The PMU overflow interrupt is already set
  13. -ENXIO: The overflow interrupt not set when attempting to get it
  14. -ENODEV: PMUv3 not supported
  15. -EINVAL: Invalid PMU overflow interrupt number supplied
  16. A value describing the PMUv3 (Performance Monitor Unit v3) overflow interrupt
  17. number for this vcpu. This interrupt could be a PPI or SPI, but the interrupt
  18. type must be same for each vcpu. As a PPI, the interrupt number is the same for
  19. all vcpus, while as an SPI it must be a separate number per vcpu.
  20. 1.2 ATTRIBUTE: KVM_ARM_VCPU_PMU_V3_INIT
  21. Parameters: no additional parameter in kvm_device_attr.addr
  22. Returns: -ENODEV: PMUv3 not supported
  23. -ENXIO: PMUv3 not properly configured as required prior to calling this
  24. attribute
  25. -EBUSY: PMUv3 already initialized
  26. Request the initialization of the PMUv3. This must be done after creating the
  27. in-kernel irqchip. Creating a PMU with a userspace irqchip is currently not
  28. supported.