On 29 Apr 2026, at 9:19, Eli Britstein wrote:
> On 28/04/2026 16:06, Eelco Chaudron wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> On 1 Apr 2026, at 11:13, Eli Britstein wrote:
>>
>>> The started field is currently 'bool', accessed in netdev-dpdk only
>>> under a mutex lock. In netdev-doca it will be used not under a lock.
>>> Move it to be atomic as a pre-step towards it.
>> Hi Eli,
>>
>> Thanks for the patch, one question and comment below.
>>
>> //Eelco
>>
>>> Signed-off-by: Eli Britstein <[email protected]>
>>> ---
>>> lib/netdev-dpdk-private.h | 11 ++++++++++-
>>> lib/netdev-dpdk.c | 12 +++++++-----
>>> 2 files changed, 17 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/lib/netdev-dpdk-private.h b/lib/netdev-dpdk-private.h
>>> index 9b82db750..79aa2292a 100644
>>> --- a/lib/netdev-dpdk-private.h
>>> +++ b/lib/netdev-dpdk-private.h
>>> @@ -109,7 +109,7 @@ struct netdev_dpdk_common {
>>> uint16_t port_id;
>>> bool attached;
>>> bool is_representor;
>>> - bool started;
>>> + atomic_bool started;
>>> struct eth_addr hwaddr;
>>> int mtu;
>>> int socket_id;
>>> @@ -170,4 +170,13 @@ netdev_dpdk_common_cast(const struct netdev *netdev)
>>> return CONTAINER_OF(netdev, struct netdev_dpdk_common, up);
>>> }
>>>
>>> +static inline bool
>>> +dpdk_dev_is_started(struct netdev_dpdk_common *common)
>> I think naming should be inline with other APIs, something like;
>>
>> netdev_dpdk_is_started()
> Ack
>>
>>> +{
>>> + bool started;
>>> +
>>> + atomic_read(&common->started, &started);
>> Any reason why this is not atomic_read_relaxed() (for all accesses)?
>> If so, please add a comment why.
> I'll change to relaxed. It's just one read line, what do you mean "for all
> accesses"? store as well?
Yes, both read and store. However, you might need full synchronization
on the store, so relaxed may not be sufficient.
>>> + return started;
>>> +}
>>> +
>> [...]
>>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev