Restrict supported arch ot P6+ on Intel x86 32.
[urcu.git] / README
diff --git a/README b/README
index 96389add129001f9e67a15f63ed8368b37f02cc7..f9437dba2857856b726cc4539b6deeafaf09f668 100644 (file)
--- a/README
+++ b/README
@@ -4,9 +4,25 @@ by Mathieu Desnoyers and Paul E. McKenney
 BUILDING
 --------
 
 BUILDING
 --------
 
+       ./bootstrap (skip if using tarball)
+       ./configure
        make
        make install
        make
        make install
-       
+
+       Note:   Forcing 32-bit build:
+               * CFLAGS=-m32 ./configure
+
+               Forcing 64-bit build:
+               * CFLAGS=-m64 ./configure
+
+ARCHITECTURES SUPPORTED
+-----------------------
+
+Currently, x86 (only P6+), x86 64, PowerPC 32/64 and S390 are
+supported. The current use of sys_futex() makes it Linux-dependent, although
+this portability limitation might go away in a near future by using the pthread
+cond vars. Also, the restriction against i386, i486 and Pentium might go away if
+we integrate some of glibc runtime CPU-detection tests.
 
 QUICK START GUIDE
 -----------------
 
 QUICK START GUIDE
 -----------------
@@ -48,6 +64,17 @@ Usage of liburcu-qsbr
          the threads are not active. It provides the fastest read-side at the
          expense of more intrusiveness in the application code.
 
          the threads are not active. It provides the fastest read-side at the
          expense of more intrusiveness in the application code.
 
+Usage of liburcu-bp
+
+       * #include <urcu-bp.h>
+       * Link with "-lurcu-bp".
+       * The BP library flavor stands for "bulletproof". It is specifically
+         designed to help tracing library to hook on applications without
+         requiring to modify these applications. urcu_init(),
+         rcu_register_thread() and rcu_unregister_thread() all become nops.
+         The state is dealt with by the library internally at the expense of
+         read-side and write-side performance.
+
 Initialization
 
        Each thread that has reader critical sections (that uses
 Initialization
 
        Each thread that has reader critical sections (that uses
@@ -68,6 +95,15 @@ Writing
        After, synchronize_rcu() must be called. When it returns, the old
        values are not in usage anymore.
 
        After, synchronize_rcu() must be called. When it returns, the old
        values are not in usage anymore.
 
+Usage of liburcu-defer
+
+       * #include <urcu-defer.h>
+       * Link with "-lurcu-defer"
+       * Provides call_rcu() primitive to enqueue delayed callbacks. Queued
+         callbacks are executed in batch periodically after a grace period.
+         Do _not_ use call_rcu() within a read-side critical section, because
+         it may call synchronize_rcu() if the thread queue is full.
+
 Being careful with signals
 
        The liburcu library uses signals internally. The signal handler is
 Being careful with signals
 
        The liburcu library uses signals internally. The signal handler is
This page took 0.022872 seconds and 4 git commands to generate.