mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 20:03:54 -06:00
linux-headers: Update to v6.1
Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Acked-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
bca762c2b9
commit
93e0932b7b
13 changed files with 299 additions and 21 deletions
|
@ -1175,6 +1175,7 @@ struct kvm_ppc_resize_hpt {
|
|||
#define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
|
||||
#define KVM_CAP_S390_ZPCI_OP 221
|
||||
#define KVM_CAP_S390_CPU_TOPOLOGY 222
|
||||
#define KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
|
|
|
@ -48,12 +48,26 @@
|
|||
#define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7)
|
||||
|
||||
#define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10)
|
||||
#define PSCI_1_0_FN_CPU_FREEZE PSCI_0_2_FN(11)
|
||||
#define PSCI_1_0_FN_CPU_DEFAULT_SUSPEND PSCI_0_2_FN(12)
|
||||
#define PSCI_1_0_FN_NODE_HW_STATE PSCI_0_2_FN(13)
|
||||
#define PSCI_1_0_FN_SYSTEM_SUSPEND PSCI_0_2_FN(14)
|
||||
#define PSCI_1_0_FN_SET_SUSPEND_MODE PSCI_0_2_FN(15)
|
||||
#define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18)
|
||||
#define PSCI_1_0_FN_STAT_RESIDENCY PSCI_0_2_FN(16)
|
||||
#define PSCI_1_0_FN_STAT_COUNT PSCI_0_2_FN(17)
|
||||
|
||||
#define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18)
|
||||
#define PSCI_1_1_FN_MEM_PROTECT PSCI_0_2_FN(19)
|
||||
#define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN(19)
|
||||
|
||||
#define PSCI_1_0_FN64_CPU_DEFAULT_SUSPEND PSCI_0_2_FN64(12)
|
||||
#define PSCI_1_0_FN64_NODE_HW_STATE PSCI_0_2_FN64(13)
|
||||
#define PSCI_1_0_FN64_SYSTEM_SUSPEND PSCI_0_2_FN64(14)
|
||||
#define PSCI_1_0_FN64_STAT_RESIDENCY PSCI_0_2_FN64(16)
|
||||
#define PSCI_1_0_FN64_STAT_COUNT PSCI_0_2_FN64(17)
|
||||
|
||||
#define PSCI_1_1_FN64_SYSTEM_RESET2 PSCI_0_2_FN64(18)
|
||||
#define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN64(19)
|
||||
|
||||
/* PSCI v0.2 power state encoding for CPU_SUSPEND function */
|
||||
#define PSCI_0_2_POWER_STATE_ID_MASK 0xffff
|
||||
|
|
|
@ -12,6 +12,10 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* ioctls for /dev/userfaultfd */
|
||||
#define USERFAULTFD_IOC 0xAA
|
||||
#define USERFAULTFD_IOC_NEW _IO(USERFAULTFD_IOC, 0x00)
|
||||
|
||||
/*
|
||||
* If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and
|
||||
* UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In
|
||||
|
|
|
@ -986,6 +986,148 @@ enum vfio_device_mig_state {
|
|||
VFIO_DEVICE_STATE_RUNNING_P2P = 5,
|
||||
};
|
||||
|
||||
/*
|
||||
* Upon VFIO_DEVICE_FEATURE_SET, allow the device to be moved into a low power
|
||||
* state with the platform-based power management. Device use of lower power
|
||||
* states depends on factors managed by the runtime power management core,
|
||||
* including system level support and coordinating support among dependent
|
||||
* devices. Enabling device low power entry does not guarantee lower power
|
||||
* usage by the device, nor is a mechanism provided through this feature to
|
||||
* know the current power state of the device. If any device access happens
|
||||
* (either from the host or through the vfio uAPI) when the device is in the
|
||||
* low power state, then the host will move the device out of the low power
|
||||
* state as necessary prior to the access. Once the access is completed, the
|
||||
* device may re-enter the low power state. For single shot low power support
|
||||
* with wake-up notification, see
|
||||
* VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP below. Access to mmap'd
|
||||
* device regions is disabled on LOW_POWER_ENTRY and may only be resumed after
|
||||
* calling LOW_POWER_EXIT.
|
||||
*/
|
||||
#define VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY 3
|
||||
|
||||
/*
|
||||
* This device feature has the same behavior as
|
||||
* VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY with the exception that the user
|
||||
* provides an eventfd for wake-up notification. When the device moves out of
|
||||
* the low power state for the wake-up, the host will not allow the device to
|
||||
* re-enter a low power state without a subsequent user call to one of the low
|
||||
* power entry device feature IOCTLs. Access to mmap'd device regions is
|
||||
* disabled on LOW_POWER_ENTRY_WITH_WAKEUP and may only be resumed after the
|
||||
* low power exit. The low power exit can happen either through LOW_POWER_EXIT
|
||||
* or through any other access (where the wake-up notification has been
|
||||
* generated). The access to mmap'd device regions will not trigger low power
|
||||
* exit.
|
||||
*
|
||||
* The notification through the provided eventfd will be generated only when
|
||||
* the device has entered and is resumed from a low power state after
|
||||
* calling this device feature IOCTL. A device that has not entered low power
|
||||
* state, as managed through the runtime power management core, will not
|
||||
* generate a notification through the provided eventfd on access. Calling the
|
||||
* LOW_POWER_EXIT feature is optional in the case where notification has been
|
||||
* signaled on the provided eventfd that a resume from low power has occurred.
|
||||
*/
|
||||
struct vfio_device_low_power_entry_with_wakeup {
|
||||
__s32 wakeup_eventfd;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP 4
|
||||
|
||||
/*
|
||||
* Upon VFIO_DEVICE_FEATURE_SET, disallow use of device low power states as
|
||||
* previously enabled via VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY or
|
||||
* VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP device features.
|
||||
* This device feature IOCTL may itself generate a wakeup eventfd notification
|
||||
* in the latter case if the device had previously entered a low power state.
|
||||
*/
|
||||
#define VFIO_DEVICE_FEATURE_LOW_POWER_EXIT 5
|
||||
|
||||
/*
|
||||
* Upon VFIO_DEVICE_FEATURE_SET start/stop device DMA logging.
|
||||
* VFIO_DEVICE_FEATURE_PROBE can be used to detect if the device supports
|
||||
* DMA logging.
|
||||
*
|
||||
* DMA logging allows a device to internally record what DMAs the device is
|
||||
* initiating and report them back to userspace. It is part of the VFIO
|
||||
* migration infrastructure that allows implementing dirty page tracking
|
||||
* during the pre copy phase of live migration. Only DMA WRITEs are logged,
|
||||
* and this API is not connected to VFIO_DEVICE_FEATURE_MIG_DEVICE_STATE.
|
||||
*
|
||||
* When DMA logging is started a range of IOVAs to monitor is provided and the
|
||||
* device can optimize its logging to cover only the IOVA range given. Each
|
||||
* DMA that the device initiates inside the range will be logged by the device
|
||||
* for later retrieval.
|
||||
*
|
||||
* page_size is an input that hints what tracking granularity the device
|
||||
* should try to achieve. If the device cannot do the hinted page size then
|
||||
* it's the driver choice which page size to pick based on its support.
|
||||
* On output the device will return the page size it selected.
|
||||
*
|
||||
* ranges is a pointer to an array of
|
||||
* struct vfio_device_feature_dma_logging_range.
|
||||
*
|
||||
* The core kernel code guarantees to support by minimum num_ranges that fit
|
||||
* into a single kernel page. User space can try higher values but should give
|
||||
* up if the above can't be achieved as of some driver limitations.
|
||||
*
|
||||
* A single call to start device DMA logging can be issued and a matching stop
|
||||
* should follow at the end. Another start is not allowed in the meantime.
|
||||
*/
|
||||
struct vfio_device_feature_dma_logging_control {
|
||||
__aligned_u64 page_size;
|
||||
__u32 num_ranges;
|
||||
__u32 __reserved;
|
||||
__aligned_u64 ranges;
|
||||
};
|
||||
|
||||
struct vfio_device_feature_dma_logging_range {
|
||||
__aligned_u64 iova;
|
||||
__aligned_u64 length;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_FEATURE_DMA_LOGGING_START 6
|
||||
|
||||
/*
|
||||
* Upon VFIO_DEVICE_FEATURE_SET stop device DMA logging that was started
|
||||
* by VFIO_DEVICE_FEATURE_DMA_LOGGING_START
|
||||
*/
|
||||
#define VFIO_DEVICE_FEATURE_DMA_LOGGING_STOP 7
|
||||
|
||||
/*
|
||||
* Upon VFIO_DEVICE_FEATURE_GET read back and clear the device DMA log
|
||||
*
|
||||
* Query the device's DMA log for written pages within the given IOVA range.
|
||||
* During querying the log is cleared for the IOVA range.
|
||||
*
|
||||
* bitmap is a pointer to an array of u64s that will hold the output bitmap
|
||||
* with 1 bit reporting a page_size unit of IOVA. The mapping of IOVA to bits
|
||||
* is given by:
|
||||
* bitmap[(addr - iova)/page_size] & (1ULL << (addr % 64))
|
||||
*
|
||||
* The input page_size can be any power of two value and does not have to
|
||||
* match the value given to VFIO_DEVICE_FEATURE_DMA_LOGGING_START. The driver
|
||||
* will format its internal logging to match the reporting page size, possibly
|
||||
* by replicating bits if the internal page size is lower than requested.
|
||||
*
|
||||
* The LOGGING_REPORT will only set bits in the bitmap and never clear or
|
||||
* perform any initialization of the user provided bitmap.
|
||||
*
|
||||
* If any error is returned userspace should assume that the dirty log is
|
||||
* corrupted. Error recovery is to consider all memory dirty and try to
|
||||
* restart the dirty tracking, or to abort/restart the whole migration.
|
||||
*
|
||||
* If DMA logging is not enabled, an error will be returned.
|
||||
*
|
||||
*/
|
||||
struct vfio_device_feature_dma_logging_report {
|
||||
__aligned_u64 iova;
|
||||
__aligned_u64 length;
|
||||
__aligned_u64 page_size;
|
||||
__aligned_u64 bitmap;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_FEATURE_DMA_LOGGING_REPORT 8
|
||||
|
||||
/* -------- API for Type1 VFIO IOMMU -------- */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue