Re: [PATCH 3/4] mm: replace rw_semaphore with atomic_t in vma_lock
From: Peter Zijlstra
Date: Fri Dec 13 2024 - 13:36:18 EST
On Fri, Dec 13, 2024 at 09:45:33AM -0800, Suren Baghdasaryan wrote:
> On Fri, Dec 13, 2024 at 1:57 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> > On Thu, Dec 12, 2024 at 08:48:52PM -0800, Suren Baghdasaryan wrote:
> >
> > > I'm not sure if this is the best way to deal with this circular
> > > dependency. Any other ideas?
> >
> > Move the waiting into an out-of-line slow-path?
> >
> > if (atomic_read(&vma->refcnt) != 2)
> > __vma_write_start_wait(mm, vma);
>
> The problem is not a function but the addition of struct rcuwait into
Durr, in my brain that was a struct task_struct pointer, totally forgot
we had a type there. Yeah, as Willy says, move it to compiler_types.h or
somesuch.