Re: [PATCH 2/2] KVM: Convert read-only users of vm_list to RCU

Avi Kivity
2011-02-10T13:20:00Z

On 02/10/2011 03:14 PM, Jan Kiszka wrote:
> On 2011-02-10 13:57, Avi Kivity wrote:
> > On 02/10/2011 02:56 PM, Avi Kivity wrote:
> >>> What's the benefit? The downside is a bit more complexity as you need an
> >>> additional callback handler.
> >>
> >>
> >> synchronize_rcu() can be very slow (its a systemwide operation), and
> >> mmu_shrink() can be called often on a loaded system.
> >>
> >
> > In fact this just shows that vm_list is not a good candidate for rcu;
> > rcu is useful where most operations are reads, but if we discount stats,
> > most operations on vm_list are going to be writes.
>
> Accept for mmu_shrink, which is write but not delete, thus works without
> that slow synchronize_rcu.

I don't really see how you can implement list_move_rcu(), it has to be
atomic or other users will see a partial vm_list.

> And I don't see the need for call_rcu in the
> vm deletion path.

synchronize_rcu() is fine for vm destruction.

--
error compiling committee.c: too many arguments to function