On 2023-03-15 18:20, Stephen Hemminger wrote:
> On Wed, 15 Mar 2023 18:03:41 +0100
> Mattias Rönnblom <mattias.ronnb...@ericsson.com> wrote:
> 
>> Introduce a set of functions and macros that operate on sets of bits,
>> kept in arrays of 64-bit elements.
>>
>> RTE bitset is designed for bitsets which are larger than what fits in
>> a single machine word (i.e., 64 bits). For very large bitsets, the
>> <rte_bitmap.h> API may be a more appropriate choice.
>>
>> RFC v2:
>>   * Replaced <sys/types.h> with <stddef.h> include, to properly get
>>     size_t typedef.
>>   * Add <rte_compat.h> to get __rte_experimental in <rte_bitset.h>.
>>
>> Signed-off-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com>
> 
> It would be good to have atomic version of these routines.
> Other libraries could use that.

Atomic with the option to specify memory model, like in C11? Or just 
atomic, with no implications in regards to memory ordering (i.e., 
__ATOMIC_RELAXED).

It seems to me that the implementation of such an API would require 
inline assembler (e.g., lock bts on x86) to do properly (no loops, no 
locks).

Related: reading <rte_bitops.h> left me a little confused. The 
documentation and naming suggest the bit access operations are 
"relaxed", which I'm sure is true, but may leave the user believing the 
bit operations are atomic - which they aren't. Why would you otherwise 
mentioned the operations are relaxed?

Reply via email to