Re: [PATCH 4/4] Convert irq notifiers lists to RCU locking.

Gleb Natapov
2009-07-14T12:06:16Z

On Tue, Jul 14, 2009 at 05:03:09AM -0700, Paul E. McKenney wrote:
> On Tue, Jul 14, 2009 at 08:46:12AM +0300, Gleb Natapov wrote:
> > On Mon, Jul 13, 2009 at 12:31:39PM -0700, Paul E. McKenney wrote:
> > > On Mon, Jul 13, 2009 at 04:40:59PM +0300, Michael S. Tsirkin wrote:
> > > > On Mon, Jul 13, 2009 at 04:32:34PM +0300, Gleb Natapov wrote:
> > > > > Yeah I understand that other RCU read section may introduce delays too.
> > > > > The question is how big the delay may be.
> > > >
> > > > I recall seeing the number "at least 3 jiffies" somewhere, but that
> > > > might have changed since.
> > >
> > > A grace period lasts a handful of jiffies, depending on kernel
> > > configuration and how long readers remain in a given RCU read-side
> > > critical section.
> > >
> > > If a handful of jiffies is too long, there are patches that speed up
> > > the grace period, down into the sub-hundred-microsecond range.
> > >
> > > > > I don't think multiple
> > > > > milliseconds delay in device de-assignment is a big issue though.
> > > >
> > > > Right. My point was that since the sync is done under kvm lock, the
> > > > guest can easily get blocked trying to get kvm lock meanwhile.
> > >
> > > I will ask the usual question -- can call_rcu() be used to move
> > > the grace period out from under the lock? (Often this can be done,
> > > but not always.)
> > >
> > It can't. Caller frees the data.
>
> I will then ask the usual next question... Can the freeing of the
> data be moved from the caller?
>
Not really. But don't worry. In the case we discuss a small delay is not
a problem.

--
Gleb.