mbox series

[v2,00/17] vfio: QOMify VFIOContainer

Message ID 20240617063409.34393-1-clg@redhat.com
Headers show
Series vfio: QOMify VFIOContainer | expand

Message

Cédric Le Goater June 17, 2024, 6:33 a.m. UTC
Hello,

The series starts with simple changes (patch 1-4). Two of which were
initially sent by Joao in a series adding VFIO migration support with
vIOMMU [1].

The changes following prepare VFIOContainer for QOMification, switch
the container models to QOM when ready and add some final cleanups.

Applies on top of :

 * [v7] Add a host IOMMU device abstraction to check with vIOMMU
   https://lore.kernel.org/all/20240605083043.317831-1-zhenzhong.duan@intel.com
 * [v4] VIRTIO-IOMMU/VFIO: Fix host iommu geometry
   https://lore.kernel.org/all/20240614095402.904691-1-eric.auger@redhat.com

Thanks,

C.

[1] https://lore.kernel.org/qemu-devel/20230622214845.3980-1-joao.m.martins@oracle.com/


Changes in v2:
 - Used OBJECT_DECLARE_SIMPLE_TYPE
 - Introduced a instance_finalize() handler

Avihai Horon (1):
  vfio/common: Extract vIOMMU code from vfio_sync_dirty_bitmap()

Cédric Le Goater (15):
  vfio: Make vfio_devices_dma_logging_start() return bool
  vfio: Remove unused declarations from vfio-common.h
  vfio/container: Introduce vfio_address_space_insert()
  vfio/container: Simplify vfio_container_init()
  vfio/container: Modify vfio_get_iommu_type() to use a container fd
  vfio/container: Introduce vfio_get_iommu_class_name()
  vfio/container: Introduce vfio_create_container()
  vfio/container: Discover IOMMU type before creating the container
  vfio/container: Change VFIOContainerBase to use QOM
  vfio/container: Switch to QOM
  vfio/container: Introduce an instance_init() handler
  vfio/container: Remove VFIOContainerBase::ops
  vfio/container: Remove vfio_container_init()
  vfio/container: Introduce vfio_iommu_legacy_instance_init()
  vfio/container: Move vfio_container_destroy() to an
    instance_finalize() handler

Joao Martins (1):
  vfio/common: Move dirty tracking ranges update to helper

 include/hw/vfio/vfio-common.h         |  10 ++-
 include/hw/vfio/vfio-container-base.h |  19 +---
 hw/vfio/common.c                      | 124 ++++++++++++++++----------
 hw/vfio/container-base.c              |  70 +++++++++------
 hw/vfio/container.c                   | 106 ++++++++++++----------
 hw/vfio/iommufd.c                     |  13 ++-
 hw/vfio/pci.c                         |   4 +-
 hw/vfio/spapr.c                       |   3 +
 8 files changed, 196 insertions(+), 153 deletions(-)

Comments

Eric Auger June 17, 2024, 4:22 p.m. UTC | #1
Hi Cédric,

On 6/17/24 08:33, Cédric Le Goater wrote:
> Hello,
>
> The series starts with simple changes (patch 1-4). Two of which were
> initially sent by Joao in a series adding VFIO migration support with
> vIOMMU [1].
>
> The changes following prepare VFIOContainer for QOMification, switch
> the container models to QOM when ready and add some final cleanups.
>
> Applies on top of :
>
>  * [v7] Add a host IOMMU device abstraction to check with vIOMMU
>    https://lore.kernel.org/all/20240605083043.317831-1-zhenzhong.duan@intel.com
>  * [v4] VIRTIO-IOMMU/VFIO: Fix host iommu geometry
>    https://lore.kernel.org/all/20240614095402.904691-1-eric.auger@redhat.com

For the whole series, feel free to add my

Tested-by: Eric Auger <eric.auger@redhat.com>

I tested with legacy/iommufd BE and with/without virtio-iommu

Eric

>
> Thanks,
>
> C.
>
> [1] https://lore.kernel.org/qemu-devel/20230622214845.3980-1-joao.m.martins@oracle.com/
>
>
> Changes in v2:
>  - Used OBJECT_DECLARE_SIMPLE_TYPE
>  - Introduced a instance_finalize() handler
>
> Avihai Horon (1):
>   vfio/common: Extract vIOMMU code from vfio_sync_dirty_bitmap()
>
> Cédric Le Goater (15):
>   vfio: Make vfio_devices_dma_logging_start() return bool
>   vfio: Remove unused declarations from vfio-common.h
>   vfio/container: Introduce vfio_address_space_insert()
>   vfio/container: Simplify vfio_container_init()
>   vfio/container: Modify vfio_get_iommu_type() to use a container fd
>   vfio/container: Introduce vfio_get_iommu_class_name()
>   vfio/container: Introduce vfio_create_container()
>   vfio/container: Discover IOMMU type before creating the container
>   vfio/container: Change VFIOContainerBase to use QOM
>   vfio/container: Switch to QOM
>   vfio/container: Introduce an instance_init() handler
>   vfio/container: Remove VFIOContainerBase::ops
>   vfio/container: Remove vfio_container_init()
>   vfio/container: Introduce vfio_iommu_legacy_instance_init()
>   vfio/container: Move vfio_container_destroy() to an
>     instance_finalize() handler
>
> Joao Martins (1):
>   vfio/common: Move dirty tracking ranges update to helper
>
>  include/hw/vfio/vfio-common.h         |  10 ++-
>  include/hw/vfio/vfio-container-base.h |  19 +---
>  hw/vfio/common.c                      | 124 ++++++++++++++++----------
>  hw/vfio/container-base.c              |  70 +++++++++------
>  hw/vfio/container.c                   | 106 ++++++++++++----------
>  hw/vfio/iommufd.c                     |  13 ++-
>  hw/vfio/pci.c                         |   4 +-
>  hw/vfio/spapr.c                       |   3 +
>  8 files changed, 196 insertions(+), 153 deletions(-)
>
Cédric Le Goater June 18, 2024, 11:45 a.m. UTC | #2
On 6/17/24 6:22 PM, Eric Auger wrote:
> Hi Cédric,
> 
> On 6/17/24 08:33, Cédric Le Goater wrote:
>> Hello,
>>
>> The series starts with simple changes (patch 1-4). Two of which were
>> initially sent by Joao in a series adding VFIO migration support with
>> vIOMMU [1].
>>
>> The changes following prepare VFIOContainer for QOMification, switch
>> the container models to QOM when ready and add some final cleanups.
>>
>> Applies on top of :
>>
>>   * [v7] Add a host IOMMU device abstraction to check with vIOMMU
>>     https://lore.kernel.org/all/20240605083043.317831-1-zhenzhong.duan@intel.com
>>   * [v4] VIRTIO-IOMMU/VFIO: Fix host iommu geometry
>>     https://lore.kernel.org/all/20240614095402.904691-1-eric.auger@redhat.com
> 
> For the whole series, feel free to add my
> 
> Tested-by: Eric Auger <eric.auger@redhat.com>
> 
> I tested with legacy/iommufd BE and with/without virtio-iommu

Thanks !

Here is an updated version, with the new commit logs :

   https://github.com/legoater/qemu/commits/vfio-9.1

I hope to push on vfio-next soon, without the series "vfio: VFIO
migration support with vIOMMU".

C.
Cédric Le Goater June 24, 2024, 9:17 p.m. UTC | #3
On 6/17/24 8:33 AM, Cédric Le Goater wrote:
> Hello,
> 
> The series starts with simple changes (patch 1-4). Two of which were
> initially sent by Joao in a series adding VFIO migration support with
> vIOMMU [1].
> 
> The changes following prepare VFIOContainer for QOMification, switch
> the container models to QOM when ready and add some final cleanups.
> 
> Applies on top of :
> 
>   * [v7] Add a host IOMMU device abstraction to check with vIOMMU
>     https://lore.kernel.org/all/20240605083043.317831-1-zhenzhong.duan@intel.com
>   * [v4] VIRTIO-IOMMU/VFIO: Fix host iommu geometry
>     https://lore.kernel.org/all/20240614095402.904691-1-eric.auger@redhat.com
> 
> Thanks,
> 
> C.
> 
> [1] https://lore.kernel.org/qemu-devel/20230622214845.3980-1-joao.m.martins@oracle.com/
> 
> 
> Changes in v2:
>   - Used OBJECT_DECLARE_SIMPLE_TYPE
>   - Introduced a instance_finalize() handler
> 
> Avihai Horon (1):
>    vfio/common: Extract vIOMMU code from vfio_sync_dirty_bitmap()
> 
> Cédric Le Goater (15):
>    vfio: Make vfio_devices_dma_logging_start() return bool
>    vfio: Remove unused declarations from vfio-common.h
>    vfio/container: Introduce vfio_address_space_insert()
>    vfio/container: Simplify vfio_container_init()
>    vfio/container: Modify vfio_get_iommu_type() to use a container fd
>    vfio/container: Introduce vfio_get_iommu_class_name()
>    vfio/container: Introduce vfio_create_container()
>    vfio/container: Discover IOMMU type before creating the container
>    vfio/container: Change VFIOContainerBase to use QOM
>    vfio/container: Switch to QOM
>    vfio/container: Introduce an instance_init() handler
>    vfio/container: Remove VFIOContainerBase::ops
>    vfio/container: Remove vfio_container_init()
>    vfio/container: Introduce vfio_iommu_legacy_instance_init()
>    vfio/container: Move vfio_container_destroy() to an
>      instance_finalize() handler
> 
> Joao Martins (1):
>    vfio/common: Move dirty tracking ranges update to helper
> 
>   include/hw/vfio/vfio-common.h         |  10 ++-
>   include/hw/vfio/vfio-container-base.h |  19 +---
>   hw/vfio/common.c                      | 124 ++++++++++++++++----------
>   hw/vfio/container-base.c              |  70 +++++++++------
>   hw/vfio/container.c                   | 106 ++++++++++++----------
>   hw/vfio/iommufd.c                     |  13 ++-
>   hw/vfio/pci.c                         |   4 +-
>   hw/vfio/spapr.c                       |   3 +
>   8 files changed, 196 insertions(+), 153 deletions(-)
> 

Applied to vfio-next.

Thanks,

C.