[PATCH v2] eal: add seqlock
Ola Liljedahl
ola.liljedahl at arm.com
Thu Mar 31 13:44:02 CEST 2022
<snip>
>>> I think lock()/unlock() should be avoided in the read operation
>>> names, because no lock is taken during read. I like the critical region
>>> begin()/end() names.
>> I was following the naming convention of rte_rwlock. Isn't the seqlock
>> just a more scalable implementation of a reader/writer lock?
>
> I see your point. However, no lock is taken, so using lock()/unlock() is somewhat misleading.
Conceptually, a reader lock is acquired and should be released. Now
there wouldn't be any negative effects of skipping the unlock operation
but then you wouldn't know if the data was properly read so you would
have to ignore any read data as well. Why even call
rte_seqlock_read_lock() in such a situation?
In the only meaningful case, the lock is acquired, the protected data is
read and the lock is released. The only difference compared to a more
vanilla lock implementation is that the release operation may fail and
the operation must restart.
<snip>
- Ola
More information about the dev
mailing list