Re: [PATCH v3] vringh: IOMEM support

From: Jason Wang
Date: Wed Apr 26 2023 - 02:11:00 EST


On Tue, Apr 25, 2023 at 6:23 PM Shunsuke Mie <mie@xxxxxxxxxx> wrote:
>
> Introduce a new memory accessor for vringh. It is able to use vringh to
> virtio rings located on io-memory region.

Is there a user for this? It would be better if you can describe the
use cases for this. Maybe you can post the user or at least a link to
the git as a reference.

>
> Signed-off-by: Shunsuke Mie <mie@xxxxxxxxxx>
> ---
>
> Changes from v2: https://lore.kernel.org/virtualization/20230202090934.549556-1-mie@xxxxxxxxxx/
> - Focus on an adding io memory APIs
> Remove vringh API unification and some fixes.
> - Rebase on next-20230414
>
> drivers/vhost/Kconfig | 6 ++
> drivers/vhost/vringh.c | 129 +++++++++++++++++++++++++++++++++++++++++
> include/linux/vringh.h | 33 +++++++++++
> 3 files changed, 168 insertions(+)
>
> diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
> index b455d9ab6f3d..4b0dbb4a8ab3 100644
> --- a/drivers/vhost/Kconfig
> +++ b/drivers/vhost/Kconfig
> @@ -6,6 +6,12 @@ config VHOST_IOTLB
> This option is selected by any driver which needs to support
> an IOMMU in software.
>
> +config VHOST_RING_IOMEM
> + tristate
> + select VHOST_IOMEM
> + help
> + This option enables vringh APIs to supports io memory space.

There's no specific Kconfig for all the existing accessors. Any reason
I/O memory is special or do you care about the size of the module?

> +
> config VHOST_RING
> tristate
> select VHOST_IOTLB
> diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
> index 955d938eb663..ce5a88eecc05 100644
> --- a/drivers/vhost/vringh.c
> +++ b/drivers/vhost/vringh.c
> @@ -1604,4 +1604,133 @@ EXPORT_SYMBOL(vringh_need_notify_iotlb);
>
> #endif
>

[...]

>
> base-commit: d3f2cd24819158bb70701c3549e586f9df9cee67
> prerequisite-patch-id: 760abbe8c981c52ccc421b8139e8999ab71619aa
> prerequisite-patch-id: 99d8679ab4569545c8af401e84142c66312e953e
> prerequisite-patch-id: aca81516aba75b58c8422d37c2dc7db2f61ffe92
> prerequisite-patch-id: 3d76136200c4e55ba2c41681325f242859dd6dbd
> prerequisite-patch-id: 47a994feb68d95412d81b0fd1fa27bc7ba05ae18
> prerequisite-patch-id: a2f7fc3f35358f70b6dad4c919ce293b10295c4f
> prerequisite-patch-id: 70e2ee32b945be96a0388f0ff564651ac9335220
> prerequisite-patch-id: 2023690f9c47017b56d7f036332a5ca3ece6bde8
> prerequisite-patch-id: 211e113fec6c450d13fbdb437ecfad67dec0a157
> prerequisite-patch-id: f2bcd3168933886e4cd4c39e47446d1bd7cb2691
> prerequisite-patch-id: 37b131560808733a0b8878e85a3d2a46d6ab02ca
> prerequisite-patch-id: 79b0219a715cb5ace227d55666d62fdb2dcc6ffe
> prerequisite-patch-id: 30f1740cd48a19aa1c3c93e625c740cae2845478
> prerequisite-patch-id: 31989e4a521f2fc6f68c4ccdb6960035e87666a7
> prerequisite-patch-id: 3948bb3e0c045e2ffff06a714d17bab16c94775d
> prerequisite-patch-id: cf28e0115b9111bcb77aa9c710d98b2be93c7e89
> prerequisite-patch-id: ebf2349c0ae1296663854eee2da0b43fe8972f9b
> prerequisite-patch-id: fc570921d885a2a6000800b4022321e63f1650a5
> prerequisite-patch-id: 1fd5219fef17c2bf2d76000207b25aae58c368f3
> prerequisite-patch-id: 34e5f078202762fe69df471e97b51b1341cbdfa9
> prerequisite-patch-id: 7fa5151b9e0488b48c2b9d1219152cfb047d6586
> prerequisite-patch-id: 33cca272767af04ae9abe7af2f6cbb9972cc0b77
> prerequisite-patch-id: bb1a6befc899dd97bcd946c2d76ce73675a1fa45
> prerequisite-patch-id: 10be04dd92fa451d13676e91d9094b63cd7fbcf8
> prerequisite-patch-id: 87b86eb4ce9501bba9c04ec81094ac9202392431
> prerequisite-patch-id: a5ced28762bf6bd6419dae0e4413d02ccafd72c2
> prerequisite-patch-id: 2db4c9603e00d69bb0184dabcc319e7f74f30305
> prerequisite-patch-id: 41933f9d53e5e9e02efd6157b68ee7d92b10cfa2
> prerequisite-patch-id: df3295b4cdde3a45eaf4c40047179698a4224d05
> prerequisite-patch-id: 9e2fca9ab0ba2b935daa96f1745ff4c909792231
> prerequisite-patch-id: 8948378099ba4d61e10a87e617d69ed2fc4104ae
> prerequisite-patch-id: 5e7466f3f0d74880d1a574a1bd91b12091dcf3f5
> prerequisite-patch-id: 902899e1cd53b7fcc7971f630aed103830fc3e3d
> prerequisite-patch-id: 42126b180500f9ff123db78748972c6ece18ac57
> prerequisite-patch-id: 5236a03ef574074f3c1009a52612051862b31eff
> prerequisite-patch-id: adae1aa80df65bd02a9e3f4db490cf801c1c6119
> prerequisite-patch-id: 22806fcabb973ee5f04ee6212db6161aab5bcbfc
> prerequisite-patch-id: 6eb14cfdc2cf31e90556f6afe7361427a332e8dc

These seem meaningless?

Thanks

> --
> 2.25.1
>