Re: [RFC PATCH v3 12/24] x86/mm: Modify ptep_set_wrprotect and pmdp_set_wrprotect for _PAGE_DIRTY_SW

From: Peter Zijlstra
Date: Fri Aug 31 2018 - 12:30:07 EST


On Fri, Aug 31, 2018 at 08:58:39AM -0700, Dave Hansen wrote:
> On 08/31/2018 08:48 AM, Yu-cheng Yu wrote:
> > To trigger a race in ptep_set_wrprotect(), we need to fork from one of
> > three pthread siblings.
> >
> > Or do we measure only how much this affects fork?
> > If there is no racing, the effect should be minimal.
>
> We don't need a race.
>
> I think the cmpxchg will be slower, even without a race, than the code
> that was there before. The cmpxchg is a simple, straightforward
> solution, but we're putting it in place of a plain memory write, which
> is suboptimal.

Note quite, the clear_bit() is LOCK prefixed.