Re: [PATCH] mm: bypass datarace check

From: Guilherme Giacomo Simoes

Date: Wed Sep 09 2026 - 17:32:08 EST


"Lorenzo Stoakes (ARM)" <ljs@xxxxxxxxxx> wrote:
> I started review below but honestly this patch is confused in multiple ways
> and it's not entirely clear you really understand what's going on here.
I can be wrong, but was understand that due the order that the code was write
probably the data race problem will not happen.

The reader (__vmf_anon_prepare()):
```
if (likely(vma->anon_vma)) // lockless check
return 0; // OK

// if the check above fail

if (!__anon_vma_prepare(vma)) // called the __anon_vma_prepare
return 0;

```

inside __anon_vma_prepare()
```
spin_lock(&mm->page_table_lock); //ACQUIRE semantics

if (likely(!vma->anon_vma)) // re-check under lock
// ... alloc all

spin_unlock(&mm->page_table_lock);
```

This is safe because, if `if (likely(vma->anon_vma))` return NULL, we will got
the mmap_lock and then page_table_lock.

The critical re-check inside __anon_vma_prepare() happens under spin_lock(...)
with has ACQUIRE semantics.
With ACQUIRE semantics , the cpu (or compiler, I don't know) cannot reorder the
memory access acress the lock boundary.

I'm right?

>
> It's also basically implementing what we suggested.
>
> So at this point I think it's easier if I send the patch with a:
>
> Reported-by:
> Closes:
>
> tag -> you, this patch.
>
> Thanks!
ok, no problem

> On Wed, Sep 09, 2026 at 08:57:23AM -0300, Guilherme Giacomo Simoes wrote:
> > Despiste kcsan point to a possible race condition problem, this is a
>
> Typos -> Despite, point -> points
Hmm, is not the first time that any person points my english mistakes... I will
improve this point, thank you for yout jints

> > safe race condition due the access memory ordering, since
> > spin_lock(&mm->page_table_lock) have ACQUIRE semantics and ensure the
> > ordering mapping.
>
> This sentence is a bit confused. Acquire semantics mean absolutely nothing
> unless paired with another operation and etc. etc.
missing full stop, my bad.

> Needs a:
>
> Suggested-by: Pedro Falcato <pfalcato@xxxxxxx>
Yeah, I forget

>
> Also:
>
> Assisted-by: LLM?
> The list below reads very LLM-ish so I have to ask did you use one etc. etc.
>
> https://docs.kernel.org/process/coding-assistants.html
>
> Perhaps given I am suggesting a lot here a:
I don't have installed any llm (not even cursor), I just use a deepseek,
chatgpt, etc.. to clear up a few questions. (maybe I should start use this to
help me with english too)

> There are other places where this check is done and etc.
I would should checked this, sorry. Anxiety.

Thanks Lorenzo for your review, help and patience