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

Laguna, Lukasz lukasz.laguna at intel.com
Mon Nov 20 14:22:22 UTC 2023


On 11/9/2023 13:03, Kamil Konieczny wrote:
> 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>

Done

>> Signed-off-by: Lukasz Laguna <lukasz.laguna at intel.com>
>> Reviewed-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> - ^^^^^^^^^^^^
> This should be removed.
Done
>
> 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