[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 QEMU 02/15] vfio iommu: Add ioctl defination to get dirty page
From: |
Kirti Wankhede |
Subject: |
[PATCH v9 QEMU 02/15] vfio iommu: Add ioctl defination to get dirty pages bitmap. |
Date: |
Tue, 12 Nov 2019 22:35:11 +0530 |
All pages pinned by vendor driver through vfio_pin_pages API should be
considered as dirty during migration. IOMMU container maintains a list of
all such pinned pages. Added an ioctl defination to get bitmap of such
pinned pages for requested IO virtual address range.
Signed-off-by: Kirti Wankhede <address@hidden>
Reviewed-by: Neo Jia <address@hidden>
---
linux-headers/linux/vfio.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index 597b3d4bf45e..2b00c732f313 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -902,6 +902,29 @@ struct vfio_iommu_type1_dma_unmap {
#define VFIO_IOMMU_ENABLE _IO(VFIO_TYPE, VFIO_BASE + 15)
#define VFIO_IOMMU_DISABLE _IO(VFIO_TYPE, VFIO_BASE + 16)
+/**
+ * VFIO_IOMMU_GET_DIRTY_BITMAP - _IOWR(VFIO_TYPE, VFIO_BASE + 17,
+ * struct vfio_iommu_type1_dirty_bitmap)
+ *
+ * IOCTL to get dirty pages bitmap for IOMMU container during migration.
+ * Get dirty pages bitmap of given IO virtual addresses range using
+ * struct vfio_iommu_type1_dirty_bitmap. Caller sets argsz, which is size of
+ * struct vfio_iommu_type1_dirty_bitmap. User should allocate memory to get
+ * bitmap and should set size of allocated memory in bitmap_size field.
+ * One bit is used to represent per page consecutively starting from iova
+ * offset. Bit set indicates page at that offset from iova is dirty.
+ */
+struct vfio_iommu_type1_dirty_bitmap {
+ __u32 argsz;
+ __u32 flags;
+ __u64 iova; /* IO virtual address */
+ __u64 size; /* Size of iova range */
+ __u64 bitmap_size; /* in bytes */
+ void *bitmap; /* one bit per page */
+};
+
+#define VFIO_IOMMU_GET_DIRTY_BITMAP _IO(VFIO_TYPE, VFIO_BASE + 17)
+
/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */
/*
--
2.7.0
- [PATCH v9 Qemu 00/15] Add migration support for VFIO devices, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 01/15] vfio: KABI for migration interface for device state, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 02/15] vfio iommu: Add ioctl defination to get dirty pages bitmap.,
Kirti Wankhede <=
- [PATCH v9 QEMU 03/15] vfio iommu: Add ioctl defination to unmap IOVA and return dirty bitmap, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 04/15] vfio: Add function to unmap VFIO region, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 05/15] vfio: Add vfio_get_object callback to VFIODeviceOps, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 06/15] vfio: Add save and load functions for VFIO PCI devices, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 07/15] vfio: Add migration region initialization and finalize function, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 08/15] vfio: Add VM state change handler to know state of VM, Kirti Wankhede, 2019/11/12
- [PATCH v9 QEMU 09/15] vfio: Add migration state change notifier, Kirti Wankhede, 2019/11/12