some non-restartable system calls to fail with errno = EINTR. Care
should be taken to restart system calls manually if they fail with this
error. A list of non-restartable system calls may be found in
- signal(7).
+ signal(7). To ensure the Userspace RCU library does not use signals,
+ define CONFIG_URCU_AVOID_SIGNALS at compile-time.
-Usage of DEBUG_FULL_MB
+ Read-side critical sections can sit in a signal handler. Be careful,
+ however, to disable these signals between thread creation and calls to
+ rcu_register_thread(), because a signal handler nesting on an
+ unregistered thread would not be allowed to call rcu_read_lock().
- DEBUG_FULL_MB uses full SMP barriers for readers. This eliminates the
- need for signals but results in slower reads.
+Usage of CONFIG_URCU_AVOID_SIGNALS
+ CONFIG_URCU_AVOID_SIGNALS uses full SMP barriers for readers. This
+ eliminates the need for signals but results in slower reads.
+
+Usage of DEBUG_RCU
+
+ DEBUG_RCU is used to add internal debugging self-checks to the
+ RCU library. This define adds a performance penality when enabled.
+ Can be enabled by uncommenting the corresponding line in
+ Makefile.build.inc.
Usage of DEBUG_YIELD
DEBUG_YIELD is used to add random delays in the code for testing
purposes.
-