Re: [RFC 20/20] mm/rmap: avoid potential races

From: Huang, Ying
Date: Mon Aug 23 2021 - 04:05:34 EST


Hi, Nadav,

Nadav Amit <nadav.amit@xxxxxxxxx> writes:

> From: Nadav Amit <namit@xxxxxxxxxx>
>
> flush_tlb_batched_pending() appears to have a theoretical race:
> tlb_flush_batched is being cleared after the TLB flush, and if in
> between another core calls set_tlb_ubc_flush_pending() and sets the
> pending TLB flush indication, this indication might be lost. Holding the
> page-table lock when SPLIT_LOCK is set cannot eliminate this race.

Recently, when I read the corresponding code, I find the exact same race
too. Do you still think the race is possible at least in theory? If
so, why hasn't your fix been merged?

> The current batched TLB invalidation scheme therefore does not seem
> viable or easily repairable.

I have some idea to fix this without too much code. If necessary, I
will send it out.

Best Regards,
Huang, Ying