pub(crate) fn urcu_run_prog(fd: &OwnedFd) -> Result<u32>Expand description
Userspace half of the scx_urcu machinery, see the BPF side in lib/sdt_alloc.bpf.c. ArenaLib::setup() spawns the daemon when the object carries the scx_urcu doorbell. The returned ArenaLib owns it and stops and joins it on drop, so nothing else is visible to the scheduler: its whole runtime surface is calling the scx_*_free_rcu() variants from its free path hooks.
The daemon sleeps on the doorbell and, when woken, waits an RCU grace
period, membarrier(MEMBARRIER_CMD_GLOBAL) is synchronize_rcu(), and runs
the lib-provided scx_urcu_