[ltt-dev] [PATCH 0/3] Fixes for threads that are readers and writers, and lock-free queue example

Mathieu Desnoyers compudj at krystal.dyndns.org
Mon Mar 1 14:30:16 EST 2010


* Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> * Paolo Bonzini (pbonzini at redhat.com) wrote:
> > The first two patches are bugfixes meant for application.  They allow
> > using threads that are readers and writers with implementations other
> > than urcu-qsbr.  In addition, they allow early unregistering of
> > reader threads without risking deadlock with writers.
> > 
> > The third patch is a sample implementation of lock-free queue following
> > discussion with Paul last week.
> > 
> > They do not depend on the previous patch series.
> > 
> > Paolo Bonzini (3):
> >   add rcu_thread_{on,off}line to urcu-bp and urcu
> >   add rcu_thread_offline before rcu_unregister_thread
> 
> It is illegal to call rcu_unregister_thread from within a RCU read-side
> critical section. So I don't see the point in adding support for
> explicit thread offlining. Maybe it's a documentation issue that lead
> you to assume that unregistering a thread from a read-side C.S. is
> valid ?

By the way, it's also illegal to call synchronize_rcu() from a RCU
read-side C.S. But I don't see exactly where your lock-free list needs
to do any of these operations that would result in deadlocks ?

Thanks,

Mathieu

> 
> Thanks,
> 
> Mathieu
> 
> 
> >   lock-free queue with RCU-based garbage collection
> > 
> >  README                |   10 +-
> >  tests/Makefile.am     |   36 +++-
> >  tests/test_qsbr_lfq.c |  587 +++++++++++++++++++++++++++++++++++++++++++++++++
> >  tests/test_urcu_lfq.c |  585 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  urcu-bp-static.h      |   17 ++
> >  urcu-bp.c             |   26 +++
> >  urcu-bp.h             |    4 +
> >  urcu-static.h         |   15 ++
> >  urcu.c                |   28 +++
> >  urcu.h                |    4 +
> >  10 files changed, 1307 insertions(+), 5 deletions(-)
> >  create mode 100644 tests/test_qsbr_lfq.c
> >  create mode 100644 tests/test_urcu_lfq.c
> > 
> > 
> > _______________________________________________
> > ltt-dev mailing list
> > ltt-dev at lists.casi.polymtl.ca
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> > 
> 
> -- 
> Mathieu Desnoyers
> Operating System Efficiency Consultant
> EfficiOS Inc.
> http://www.efficios.com
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
Operating System Efficiency Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list