Re: [PATCH 4/6] kvm tools: Add rwlock wrapper

Avi Kivity
2011-05-29T06:41:59Z

On 05/28/2011 09:32 PM, Ingo Molnar wrote:
> * Avi Kivity<avi@redhat.com> wrote:
>
> > > So if you set a notification signal via fcntl(F_SETOWN) on the
> > > scheduler context switch event fd, the user-space RCU code will
> > > get a signal on every context switch.
> >
> > Context switches are completely uninteresting for userspace rcu:
> >
> > rcu_read_lock();
> > ---> context switch
> >
> > have we learned anything from that? no. User code is always
> > preemptible and migratable. If rcu_read_lock() prevented migration
> > somehow, then we'd know that a context switch means we've started a
> > grace period for this thread. But it doesn't, so we don't.
>
> Well, in the next mail i mentioned that we can do migration events as
> well, which would be useful: instead of having to keep track of
> nr_tasks RCU grace periods we could simplify it down to nr_cpus.

I don't see how a migration event helps. It is completely transparent
from the task's point of view.

> But if we indexed by the TID then we wouldnt need any scheduler
> bindings at all - this is the simpler approach.

Yes, and it maps 1:1 to the kernel implementation (cpu = task).

> > What's needed are explicit notifications about grace periods. For
> > the vcpu threads, calling KVM_VCPU_RUN seems like a good point.
> > For I/O threads, completion of processing of an event is also a
> > good point.
>
> Grace period notifications are needed too, obviously.

I'd think they're sufficient, no? Is something else needed?

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.