[igt-dev] [PATCH i-g-t 4/8] lib/igt_sriov_device: add helpers for operations in different VFs scenarios

Kamil Konieczny kamil.konieczny at linux.intel.com
Thu Nov 9 12:03:49 UTC 2023


Hi Lukasz,
On 2023-11-09 at 07:51:43 +0100, Lukasz Laguna wrote:
> Added helpers:
> - for_each_vf and for_each_num_vfs
> - for_random_vf and for_random_num_vfs
> - for_last_vf and for_max_num_vfs
> 

What changed in v2? Please describe like:

v2: document macro parameters (Michal)

Add here Cc:
Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
Cc: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> Signed-off-by: Lukasz Laguna <lukasz.laguna at intel.com>
> Reviewed-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
- ^^^^^^^^^^^^
This should be removed.

Regards,
Kamil

> ---
>  lib/igt_sriov_device.h | 41 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
> 
> diff --git a/lib/igt_sriov_device.h b/lib/igt_sriov_device.h
> index be4e56cf3..1b99fb8ce 100644
> --- a/lib/igt_sriov_device.h
> +++ b/lib/igt_sriov_device.h
> @@ -19,4 +19,45 @@ bool igt_sriov_disable_driver_autoprobe(int pf);
>  int igt_sriov_open_vf_drm_device(int pf, unsigned int vf_num);
>  bool igt_sriov_is_vf_drm_driver_probed(int pf, unsigned int vf_num);
>  
> +/**
> + * for_each_vf:
> + * @__pf_fd: PF device file descriptor
> + * @__vf_num: VFs iterator
> + *
> + * For loop that iterates over all VFs associated with given PF @__pf_fd.
> + */
> +#define for_each_vf(__pf_fd, __vf_num) \
> +	for (unsigned int __vf_num = 1, __total_vfs = igt_sriov_get_total_vfs(__pf_fd); \
> +	     __vf_num <= __total_vfs; \
> +	     ++__vf_num)
> +#define for_each_num_vfs for_each_vf
> +
> +/**
> + * for_random_vf:
> + * @__pf_fd: PF device file descriptor
> + * @__vf_num: stores random VF
> + *
> + * Helper allows to run code using random VF number (stored in @__vf_num)
> + * picked from the range of all VFs associated with given PF @__pf_fd.
> + */
> +#define for_random_vf(__pf_fd, __vf_num) \
> +	for (unsigned int __vf_num = 1 + random() % igt_sriov_get_total_vfs(__pf_fd), __tmp = 0; \
> +	     __tmp < 1; \
> +	     ++__tmp)
> +#define for_random_num_vfs for_random_vf
> +
> +/**
> + * for_last_vf:
> + * @__pf_fd: PF device file descriptor
> + * @__vf_num: stores last VF number
> + *
> + * Helper allows to run code using last VF number (stored in @__vf_num)
> + * associated with given PF @__pf_fd.
> + */
> +#define for_last_vf(__pf_fd, __vf_num) \
> +	for (unsigned int __vf_num = igt_sriov_get_total_vfs(__pf_fd), __tmp = 0; \
> +	     __tmp < 1; \
> +	     ++__tmp)
> +#define for_max_num_vfs for_last_vf
> +
>  #endif /* __IGT_SRIOV_DEVICE_H__ */
> -- 
> 2.40.0
> 


More information about the igt-dev mailing list