X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=README;h=e3800faad2d10cc5789c0a622c14f5ade9962ae1;hp=44a4bf574876ec222d00f7fa6123ccd88f3086d0;hb=1228af1ceae83f0886de7fb593b8e57e1a74e1db;hpb=e197ac6f111ac509f2bd0fef16c041254494a0de diff --git a/README b/README index 44a4bf5..e3800fa 100644 --- a/README +++ b/README @@ -39,6 +39,8 @@ supported, with the following exceptions: therefore not compatible with liburcu on x86 32-bit (i386, i486, i586, i686). The problem has been reported to the gcc community: http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg281255.html +- gcc 3.3 cannot match the "xchg" instruction on 32-bit x86 build. + See: http://kerneltrap.org/node/7507 - Alpha, ia64 and ARM architectures depend on 4.x gcc with atomic builtins support. @@ -185,6 +187,15 @@ Interaction with mutexes mutex in its dependency chain) should not be acquired from within a RCU read-side critical section. + This is especially important to understand in the context of the + QSBR flavor: a registered reader thread being "online" by + default should be considered as within a RCU read-side critical + section unless explicitly put "offline". Therefore, if + synchronize_rcu() is called with a mutex held, this mutex, as + well as any mutex which has this mutex in its dependency chain + should only be taken when the RCU reader thread is "offline" + (this can be performed by calling rcu_thread_offline()). + Usage of DEBUG_RCU DEBUG_RCU is used to add internal debugging self-checks to the