[dpdk-dev] [PATCH] eal/vfio: export internal vfio functions

Thomas Monjalon thomas at monjalon.net
Tue Mar 27 17:53:44 CEST 2018


14/03/2018 09:00, Hemant Agrawal:
> This patch moves some of the internal vfio functions from
> eal_vfio.h to rte_vfio.h for common uses with "rte_" prefix.
> 
> This patch also change the FSLMC bus usages from the internal
> VFIO functions to external ones with "rte_" prefix
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> ---
> --- a/lib/librte_eal/common/include/rte_vfio.h
> +++ b/lib/librte_eal/common/include/rte_vfio.h
> @@ -28,6 +28,12 @@
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
> +#define RTE_VFIO_NOIOMMU 8
> +#else
> +#define RTE_VFIO_NOIOMMU VFIO_NOIOMMU_IOMMU
> +#endif

I know this is just a move of an existing code,
but do you know why this check is against a version number (4.5.0),
instead of #ifdef VFIO_NOIOMMU_IOMMU which would be backport-safe?

> +/**
> + * Parse IOMMU group number for a device
> + *
> + * This function is only relevant to linux and will return
> + * an error on BSD.
> + *
> + * @return
> + *   1 on success
> + *   0 for non-existent group
> + *  <0 for errors
> + */
> +int __rte_experimental
> +rte_vfio_get_group_no(const char *sysfs_base,
> +		const char *dev_addr, int *iommu_group_no);
> +
> +/**
> + * Open VFIO container fd or get an existing one
> + *
> + * This function is only relevant to linux and will return
> + * an error on BSD.
> + *
> + * @return
> + *  > 0 container fd
> + *  < 0 for errors
> + */
> +int __rte_experimental
> +rte_vfio_get_container_fd(void);
> +
> +/**
> + * Open VFIO group fd or get an existing one
> + *
> + * This function is only relevant to linux and will return
> + * an error on BSD.
> + *
> + * @return
> + *  > 0 group fd
> + *  < 0 for errors
> + */
> +int __rte_experimental
> +rte_vfio_get_group_fd(int iommu_group_no);

All these new functions should have some @param documentation.

This file is not included in doxygen, probably because @file is missing.

About the naming, are you sure about "group_no" instead of "group_num"?

> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -254,5 +254,8 @@ EXPERIMENTAL {
>  	rte_service_set_runstate_mapped_check;
>  	rte_service_set_stats_enable;
>  	rte_service_start_with_defaults;
> +        rte_vfio_get_group_no;
> +        rte_vfio_get_container_fd;
> +        rte_vfio_get_group_fd;

Please indent with tabs.




More information about the dev mailing list