Re: BUG: maple_tree: KCSAN: data-race in mas_topiary_replace / mtree_range_walk [EXPERIMENTAL PATCH]

From: Mirsad Todorovac
Date: Mon Oct 02 2023 - 15:50:42 EST


On 10/2/23 18:43, Liam R. Howlett wrote:
* Mirsad Todorovac <mirsad.todorovac@xxxxxxxxxxxx> [231001 17:09]:

...


They say that one patch speaks more than a thousand words.

I am just running this little patch that actually silences all of the KCSAN warnings.

I cannot tell if these reported data races are the actual bugs, but it is possible that
the Ubuntu 22.04 gcc is doing some funny stuff when optimising. In Prof. McKenney's
book I've read about the load-tearing and store-tearing. AFAICS, memory barriers should
prevent load/store reordering, but not the compiler optimisations.

Please find two versions of the patch attached.

While mas->index and pivots[offset] in maple_range_walk can change concurrently,
I am not smart enough to see whether you expect that in your algorithm or is it a potential
bug triggered by GCC optimisations and aggressive Ryzen 9 7950X parallelism.

None of this is necessary, for sure.

Thanks for your feedback. If KCSAN is giving false positives, there is quite a lot of them.

I tend to believe on the safe side of the Prof. Paul McKenney, but it is your code.

I will have to look at this when I have more time to investigate. This
will likely not be soon, however.

I see. I also have some tough stuff at my day job this month. :-P

Have a nice day.

Best regards,
Mirsad

Thanks,
Liam