Re: About lock-less data structure patches

From: Paul E. McKenney
Date: Thu Apr 07 2011 - 18:05:31 EST


On Thu, Apr 07, 2011 at 02:32:06PM -0400, Mathieu Desnoyers wrote:
> * Huang Ying (ying.huang@xxxxxxxxx) wrote:
> > On 04/06/2011 09:48 AM, Mathieu Desnoyers wrote:
> > > * huang ying (huang.ying.caritas@xxxxxxxxx) wrote:
> > [snip]
> > >>>>
> > >>>> OK. I will change the comments, adding these semantics explanation.
> > >>>> The user should be warned :)
> > >>>
> > >>> Yes, that makes sense. After this generalization step, if you're ok with
> > >>> this, we could aim at moving the implementation from a stack to a queue
> > >>> and provide fifo semantic rather than lifo, so that other users (e.g.
> > >>> call_rcu in the kernel) can start benefiting from it.

Just to be clear... Currently, call_rcu() works on a per-CPU basis,
so that it can simply disable interrupts and then do the queuing
non-atomically.

However, should it be necessary to cross-queue RCU callbacks in order
to avoid ever executing an RCU callback on a given CPU, then something
like this might become useful.

Thanx, Paul

> > >> I think that is good to move from stack to queue.
> > >>
> > >> I will send out changed lock-less data structure patchset soon. And
> > >> we can continue to work on the new lock-less queue at the same time.
> > >
> > > Sounds like a very good plan! Thanks!
> >
> > Maybe you can send out your lock-less queue patches, so we can work on that.
>
> Yep, let's wait until your implementation is finalized and merged, and
> then ping me again so I can cook up a RFC patch turning llist into a
> queue, if it's OK with you.
>
> Thanks,
>
> Mathieu
>
> >
> > Best Regards,
> > Huang Ying
>
> --
> Mathieu Desnoyers
> Operating System Efficiency R&D Consultant
> EfficiOS Inc.
> http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/