[PATCH dpdk v3 2/2] ethdev: fix potential race in telemetry endpoints

Robin Jarry rjarry at redhat.com
Tue Oct 15 10:04:37 CEST 2024


David Marchand, Oct 15, 2024 at 10:02:
> On Mon, Oct 14, 2024 at 10:01 PM Stephen Hemminger
>> If this happens often, and the function takes a long time (like doing i/o)
>> it might be worth changing this to reader/writer in future.
>
> Yes, this was an option mentionned when we discussed the issue in Montréal.
> For now, a spinlock seems enough.

As far as I know, no ethdev telemetry endpoint handlers do any i/o. They 
only access stuff in memory.

>> Also, would be best to add a comment here as to what is being protected
>> if you do another version.
>
> I can add something when applying, like:
>
> @@ -1400,6 +1400,7 @@ static int eth_dev_telemetry_do(const char *cmd,
> const char *params,
>  {
>         int ret;
>         telemetry_cb fn = arg;
> +       /* Protect against port removal while invoking callback,
> calling ethdev API. */
>         rte_spinlock_lock(rte_mcfg_ethdev_get_lock());
>         ret = fn(cmd, params, d);
>         rte_spinlock_unlock(rte_mcfg_ethdev_get_lock());

Ack, thank you.



More information about the dev mailing list