On Fri, Aug 28, 2020 at 03:07:08AM +0200, Ahmed S. Darwish wrote:
>  #define __read_seqcount_begin(s)                                     \
> +({                                                                   \
> +     unsigned seq;                                                   \
> +                                                                     \
> +     do {                                                            \
> +             seq = __seqcount_sequence(s);                           \
> +             if (likely(! (seq & 1)))                                \
> +                     break;                                          \
> +             cpu_relax();                                            \
> +     } while (true);                                                 \
> +                                                                     \
> +     kcsan_atomic_next(KCSAN_SEQLOCK_REGION_MAX);                    \
> +     seq;                                                            \
> +})

Since we're there anyway, does it make sense to (re)write this like:

        while ((seq = __seqcount_sequence(s)) & 1)
                cpu_relax();

?

Reply via email to