On 2019-11-02 12:45:59 [+0000], Lai Jiangshan wrote: > Convert x86 to use a per-cpu rcu_preempt_depth. The reason for doing so > is that accessing per-cpu variables is a lot cheaper than accessing > task_struct or thread_info variables. Is there a benchmark saying how much we gain from this? > We need to save/restore the actual rcu_preempt_depth when switch. > We also place the per-cpu rcu_preempt_depth close to __preempt_count > and current_task variable. > > Using the idea of per-cpu __preempt_count. > > No function call when using rcu_read_[un]lock(). > Single instruction for rcu_read_lock(). > 2 instructions for fast path of rcu_read_unlock(). I think these were not inlined due to the header requirements. Boris pointed one thing, there is also DEFINE_PERCPU_RCU_PREEMP_DEPTH. Sebastian