> The page table seems to be protected by 'mmap_lock' in user mode > emulation but by 'tb_lock' in system mode emulation. It may turn to be > possible to read it safely even with no lock held.
Yes, it is possible to at least follow the radix tree safely with no lock held. The fields in the leaves can be either lockless or protected by a lock. The radix tree can be followed without a lock just like you do with RCU. The difference with RCU is that: 1) the leaves are protected with a lock, so you don't do the "copy"; instead after reading you lock around updates 2) the radix tree is only ever added to, so you don't need to protect the reads with rcu_read_lock/rcu_read_unlock. rcu_read_lock and rcu_read_unlock are only needed to inform the deleters that something cannot yet go away. Without deleters, you don't need rcu_read_lock and rcu_read_unlock (but you still need atomic_rcu_read/atomic_rcu_set). Paolo