[lttng-dev] Quick questions about liburcu and RCU in general

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue May 7 07:59:14 EDT 2013


Hi Richard,

* Richard Braun (rbraun at sceen.net) wrote:
> Hello,
> 
> I'm currently studying RCU/URCU, and I have a few questions that I wasn't
> sure where to ask.
> 
> 1/ Why use poll instead of sched_yield in e.g. force_mb_all_readers ?
> (I guess it's about portability and the effect is expected to be the same,
> but is there another reason ?)

poll() allow us to do a millisecond-level wait (timer-based).
sched_yield() is pretty much a scheduler hack that just says "be nice to
other scheduled processes here". Quoting sched_yield(2):

       If the calling thread is the only thread in the highest  priority list
       at that time, it will continue to run after a call to sched_yield().

This is a kind of behavior we don't want.

> 2/ What was the conclusion of the discussion regarding sys_membarrier ?
> (I couldn't find it in the main mail thread, and it looks quite interesting,
> even though I expect most carefully written applications not to exceed
> one thread per processor too much)

The conclusion so far was that:

- the implementation was fine,
- we had to show there were enough users of this new ABI to justify its
  inclusion and maintenance cost. Currently, it's pretty much just
  liburcu that uses it. As the number of liburcu users grows, this
  helps, but what would help even more would be to have other libraries
  and applications using sys_membarrier() (other people interested and
  weighting in).

> 
> 3/ Do you know if IBM allows the use of patented RCU techniques in GPLv3+
> code as well ? ("GPL" is mentioned in the Linux documentation, and
> apparently liburcu is covered by LGPLv2+ so I expect that to be the case,
> just looking for a confirmation)

AFAIK, LGPLv2+ code can migrate into GPLv3+, it's the other way around
that is not permitted. Therefore, I would expect it is allowed, but I
will let Paul answer to this one on behalf of IBM.

Thanks,

Mathieu


> 
> Thanks for your answers.
> 
> -- 
> Richard Braun

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list