X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=README;h=e3800faad2d10cc5789c0a622c14f5ade9962ae1;hp=a6e29c875de973ec9020cad76de9e28aa564fdf2;hb=5a2141a73185fb1aaaceb73f8239a7efb81c16e6;hpb=26ba798aa19e32441020728f2f5fd90df87d4175 diff --git a/README b/README index a6e29c8..e3800fa 100644 --- a/README +++ b/README @@ -8,6 +8,7 @@ BUILDING ./configure make make install + ldconfig Hints: Forcing 32-bit build: * CFLAGS="-m32 -g -O2" ./configure @@ -38,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. @@ -184,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