diff mbox series

vfio-platform: Deprecate all forms of vfio-platform devices

Message ID 20250305105800.949153-1-eric.auger@redhat.com (mailing list archive)
State New
Headers show
Series vfio-platform: Deprecate all forms of vfio-platform devices | expand

Commit Message

Eric Auger March 5, 2025, 10:58 a.m. UTC
As an outcome of KVM forum 2024 "vfio-platform: live and let die?"
talk, let's deprecate vfio-platform devices.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 docs/about/deprecated.rst | 25 +++++++++++++++++++++++++
 hw/vfio/amd-xgbe.c        |  2 ++
 hw/vfio/calxeda-xgmac.c   |  2 ++
 hw/vfio/platform.c        |  1 +
 4 files changed, 30 insertions(+)

Comments

Cédric Le Goater March 5, 2025, 11:05 a.m. UTC | #1
On 3/5/25 11:58, Eric Auger wrote:
> As an outcome of KVM forum 2024 "vfio-platform: live and let die?"
> talk, let's deprecate vfio-platform devices.
> 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> ---
>   docs/about/deprecated.rst | 25 +++++++++++++++++++++++++
>   hw/vfio/amd-xgbe.c        |  2 ++
>   hw/vfio/calxeda-xgmac.c   |  2 ++
>   hw/vfio/platform.c        |  1 +
>   4 files changed, 30 insertions(+)
> 
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index abadf8de27..d11a7004df 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -434,6 +434,31 @@ Stream ``reconnect`` (since 9.2)
>   The ``reconnect`` option only allows specifiying second granularity timeouts,
>   which is not enough for all types of use cases, use ``reconnect-ms`` instead.
>   
> +VFIO device options
> +''''''''''''''''''
> +
> +``-device vfio-calxeda-xgmac`` (since v2.4)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The version mentioned after since corresponds to the version in which
the machine/device/feature was deprecated, not the version it was added.

With that changed,

Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.



  
> +The vfio-calxeda-xgmac device allows to assign a host Calxeda Highbank
> +10Gb XGMAC Ethernet controller device ("calxeda,hb-xgmac" compatibility
> +string) to a guest. Calxeda HW has been ewasted now and there is no point
> +keeping that device.
> +
> +``-device vfio-amd-xgbe`` (since v2.6)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +The vfio-amd-xgbe devices allows to assign a host AMD 10GbE controller
> +to a guest ("amd,xgbe-seattle-v1a" compatibility string). AMD "Seattle"
> +is not supported anymore and there is no point keeping that device.
> +
> +``-device vfio-platform`` (since v3.1)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +The vfio-platform device allows to assign a host platform device
> +to a guest in a generic manner. Integrating a new device into
> +the vfio-platform infrastructure requires some adaptation at
> +both kernel and qemu level. No such attempt has been done for years
> +and the conclusion is that vfio-platform has not got any traction.
> +PCIe passthrough shall be the mainline solution.
> +
>   CPU device properties
>   '''''''''''''''''''''
>   
> diff --git a/hw/vfio/amd-xgbe.c b/hw/vfio/amd-xgbe.c
> index aaa96903db..5927503b5c 100644
> --- a/hw/vfio/amd-xgbe.c
> +++ b/hw/vfio/amd-xgbe.c
> @@ -15,12 +15,14 @@
>   #include "hw/vfio/vfio-amd-xgbe.h"
>   #include "migration/vmstate.h"
>   #include "qemu/module.h"
> +#include "qemu/error-report.h"
>   
>   static void amd_xgbe_realize(DeviceState *dev, Error **errp)
>   {
>       VFIOPlatformDevice *vdev = VFIO_PLATFORM_DEVICE(dev);
>       VFIOAmdXgbeDeviceClass *k = VFIO_AMD_XGBE_DEVICE_GET_CLASS(dev);
>   
> +    warn_report("-device vfio-amd-xgbe is deprecated");
>       vdev->compat = g_strdup("amd,xgbe-seattle-v1a");
>       vdev->num_compat = 1;
>   
> diff --git a/hw/vfio/calxeda-xgmac.c b/hw/vfio/calxeda-xgmac.c
> index b016d42b49..a5ef262def 100644
> --- a/hw/vfio/calxeda-xgmac.c
> +++ b/hw/vfio/calxeda-xgmac.c
> @@ -15,12 +15,14 @@
>   #include "hw/vfio/vfio-calxeda-xgmac.h"
>   #include "migration/vmstate.h"
>   #include "qemu/module.h"
> +#include "qemu/error-report.h"
>   
>   static void calxeda_xgmac_realize(DeviceState *dev, Error **errp)
>   {
>       VFIOPlatformDevice *vdev = VFIO_PLATFORM_DEVICE(dev);
>       VFIOCalxedaXgmacDeviceClass *k = VFIO_CALXEDA_XGMAC_DEVICE_GET_CLASS(dev);
>   
> +    warn_report("-device vfio-calxeda-xgmac is deprecated");
>       vdev->compat = g_strdup("calxeda,hb-xgmac");
>       vdev->num_compat = 1;
>   
> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> index f491f4dc95..a09f7f65c6 100644
> --- a/hw/vfio/platform.c
> +++ b/hw/vfio/platform.c
> @@ -575,6 +575,7 @@ static void vfio_platform_realize(DeviceState *dev, Error **errp)
>       VFIODevice *vbasedev = &vdev->vbasedev;
>       int i;
>   
> +    warn_report("-device vfio-platform is deprecated");
>       qemu_mutex_init(&vdev->intp_mutex);
>   
>       trace_vfio_platform_realize(vbasedev->sysfsdev ?
Philippe Mathieu-Daudé March 5, 2025, 11:45 a.m. UTC | #2
Hi Eric,

On 5/3/25 11:58, Eric Auger wrote:
> As an outcome of KVM forum 2024 "vfio-platform: live and let die?"
> talk, let's deprecate vfio-platform devices.
> 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> ---
>   docs/about/deprecated.rst | 25 +++++++++++++++++++++++++
>   hw/vfio/amd-xgbe.c        |  2 ++
>   hw/vfio/calxeda-xgmac.c   |  2 ++
>   hw/vfio/platform.c        |  1 +
>   4 files changed, 30 insertions(+)
> 
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index abadf8de27..d11a7004df 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -434,6 +434,31 @@ Stream ``reconnect`` (since 9.2)
>   The ``reconnect`` option only allows specifiying second granularity timeouts,
>   which is not enough for all types of use cases, use ``reconnect-ms`` instead.
>   
> +VFIO device options
> +''''''''''''''''''
> +
> +``-device vfio-calxeda-xgmac`` (since v2.4)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

"since" in this file means "since when the option is deprecated",
so it should be "since 10.0".

> +The vfio-calxeda-xgmac device allows to assign a host Calxeda Highbank
> +10Gb XGMAC Ethernet controller device ("calxeda,hb-xgmac" compatibility
> +string) to a guest. Calxeda HW has been ewasted now and there is no point
> +keeping that device.
> +
> +``-device vfio-amd-xgbe`` (since v2.6)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ditto.

> +The vfio-amd-xgbe devices allows to assign a host AMD 10GbE controller
> +to a guest ("amd,xgbe-seattle-v1a" compatibility string). AMD "Seattle"
> +is not supported anymore and there is no point keeping that device.
> +
> +``-device vfio-platform`` (since v3.1)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ditto.

> +The vfio-platform device allows to assign a host platform device
> +to a guest in a generic manner. Integrating a new device into
> +the vfio-platform infrastructure requires some adaptation at
> +both kernel and qemu level. No such attempt has been done for years
> +and the conclusion is that vfio-platform has not got any traction.
> +PCIe passthrough shall be the mainline solution.
Eric Auger March 5, 2025, 12:39 p.m. UTC | #3
On 3/5/25 12:45 PM, Philippe Mathieu-Daudé wrote:
> Hi Eric,
>
> On 5/3/25 11:58, Eric Auger wrote:
>> As an outcome of KVM forum 2024 "vfio-platform: live and let die?"
>> talk, let's deprecate vfio-platform devices.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> ---
>>   docs/about/deprecated.rst | 25 +++++++++++++++++++++++++
>>   hw/vfio/amd-xgbe.c        |  2 ++
>>   hw/vfio/calxeda-xgmac.c   |  2 ++
>>   hw/vfio/platform.c        |  1 +
>>   4 files changed, 30 insertions(+)
>>
>> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
>> index abadf8de27..d11a7004df 100644
>> --- a/docs/about/deprecated.rst
>> +++ b/docs/about/deprecated.rst
>> @@ -434,6 +434,31 @@ Stream ``reconnect`` (since 9.2)
>>   The ``reconnect`` option only allows specifiying second granularity
>> timeouts,
>>   which is not enough for all types of use cases, use
>> ``reconnect-ms`` instead.
>>   +VFIO device options
>> +''''''''''''''''''
>> +
>> +``-device vfio-calxeda-xgmac`` (since v2.4)
>> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> "since" in this file means "since when the option is deprecated",
> so it should be "since 10.0".
>
>> +The vfio-calxeda-xgmac device allows to assign a host Calxeda Highbank
>> +10Gb XGMAC Ethernet controller device ("calxeda,hb-xgmac" compatibility
>> +string) to a guest. Calxeda HW has been ewasted now and there is no
>> point
>> +keeping that device.
>> +
>> +``-device vfio-amd-xgbe`` (since v2.6)
>> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Ditto.
>
>> +The vfio-amd-xgbe devices allows to assign a host AMD 10GbE controller
>> +to a guest ("amd,xgbe-seattle-v1a" compatibility string). AMD "Seattle"
>> +is not supported anymore and there is no point keeping that device.
>> +
>> +``-device vfio-platform`` (since v3.1)
>> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Ditto.

OK thanks to both of you. I will fix that



Eric
>
>> +The vfio-platform device allows to assign a host platform device
>> +to a guest in a generic manner. Integrating a new device into
>> +the vfio-platform infrastructure requires some adaptation at
>> +both kernel and qemu level. No such attempt has been done for years
>> +and the conclusion is that vfio-platform has not got any traction.
>> +PCIe passthrough shall be the mainline solution.
>
diff mbox series

Patch

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index abadf8de27..d11a7004df 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -434,6 +434,31 @@  Stream ``reconnect`` (since 9.2)
 The ``reconnect`` option only allows specifiying second granularity timeouts,
 which is not enough for all types of use cases, use ``reconnect-ms`` instead.
 
+VFIO device options
+''''''''''''''''''
+
+``-device vfio-calxeda-xgmac`` (since v2.4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The vfio-calxeda-xgmac device allows to assign a host Calxeda Highbank
+10Gb XGMAC Ethernet controller device ("calxeda,hb-xgmac" compatibility
+string) to a guest. Calxeda HW has been ewasted now and there is no point
+keeping that device.
+
+``-device vfio-amd-xgbe`` (since v2.6)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The vfio-amd-xgbe devices allows to assign a host AMD 10GbE controller
+to a guest ("amd,xgbe-seattle-v1a" compatibility string). AMD "Seattle"
+is not supported anymore and there is no point keeping that device.
+
+``-device vfio-platform`` (since v3.1)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The vfio-platform device allows to assign a host platform device
+to a guest in a generic manner. Integrating a new device into
+the vfio-platform infrastructure requires some adaptation at
+both kernel and qemu level. No such attempt has been done for years
+and the conclusion is that vfio-platform has not got any traction.
+PCIe passthrough shall be the mainline solution.
+
 CPU device properties
 '''''''''''''''''''''
 
diff --git a/hw/vfio/amd-xgbe.c b/hw/vfio/amd-xgbe.c
index aaa96903db..5927503b5c 100644
--- a/hw/vfio/amd-xgbe.c
+++ b/hw/vfio/amd-xgbe.c
@@ -15,12 +15,14 @@ 
 #include "hw/vfio/vfio-amd-xgbe.h"
 #include "migration/vmstate.h"
 #include "qemu/module.h"
+#include "qemu/error-report.h"
 
 static void amd_xgbe_realize(DeviceState *dev, Error **errp)
 {
     VFIOPlatformDevice *vdev = VFIO_PLATFORM_DEVICE(dev);
     VFIOAmdXgbeDeviceClass *k = VFIO_AMD_XGBE_DEVICE_GET_CLASS(dev);
 
+    warn_report("-device vfio-amd-xgbe is deprecated");
     vdev->compat = g_strdup("amd,xgbe-seattle-v1a");
     vdev->num_compat = 1;
 
diff --git a/hw/vfio/calxeda-xgmac.c b/hw/vfio/calxeda-xgmac.c
index b016d42b49..a5ef262def 100644
--- a/hw/vfio/calxeda-xgmac.c
+++ b/hw/vfio/calxeda-xgmac.c
@@ -15,12 +15,14 @@ 
 #include "hw/vfio/vfio-calxeda-xgmac.h"
 #include "migration/vmstate.h"
 #include "qemu/module.h"
+#include "qemu/error-report.h"
 
 static void calxeda_xgmac_realize(DeviceState *dev, Error **errp)
 {
     VFIOPlatformDevice *vdev = VFIO_PLATFORM_DEVICE(dev);
     VFIOCalxedaXgmacDeviceClass *k = VFIO_CALXEDA_XGMAC_DEVICE_GET_CLASS(dev);
 
+    warn_report("-device vfio-calxeda-xgmac is deprecated");
     vdev->compat = g_strdup("calxeda,hb-xgmac");
     vdev->num_compat = 1;
 
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index f491f4dc95..a09f7f65c6 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -575,6 +575,7 @@  static void vfio_platform_realize(DeviceState *dev, Error **errp)
     VFIODevice *vbasedev = &vdev->vbasedev;
     int i;
 
+    warn_report("-device vfio-platform is deprecated");
     qemu_mutex_init(&vdev->intp_mutex);
 
     trace_vfio_platform_realize(vbasedev->sysfsdev ?