lkml.org 
[lkml]   [2005]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Notifier chains are unsafe
Date
Chandra Seetharaman wrote:
> Andy, comment above rcu_read_lock says, "It is illegal to block while in
> an RCU read-side critical section."
>
> As i mentioned in the other email we are discussing about "task
> notifier" in lse-tech. We thought of using RCU, but one of the
> requirements was that the registered function should be able to block,
> so we are looking for alternatives.
>

What are the requirements that preclude a conventional rwlock? If you
don't have any, then you should go with that.

The other solutions I've mentioned before.

Copy on read.

Various lock-free schemes:
SMR hazard pointers
RCU+SMR (probably overkill since you don't need the read side performance)
reference counting
proxy reference counting

The last would probably be the easiest to implement expecially if you used
a spinlock to safely increment the reference count without the more complicated
atomic thread-safety. It's also more self contained.

User land implementations of most of the above can be found at
http://sourceforge.net/projects/atomic-ptr-plus/

The proxy refcounting stuff is in the atomic-ptr-plus package. It's
in c++ but you should be able to figure it out.

RCU+SMR is in the fastsmr package.



--
Joe Seigh

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-27 03:22    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site