On Wed, Dec 06 2023 at 17:31, Ankur Arora wrote: > If we end up needing this, is it valid to just optimistically check if > a quiescent state needs to be registered (see below)? > Though this version exposes rcu_data.rcu_urgent_qs outside RCU but maybe > we can encapsulate that in linux/rcupdate.h. > #ifdef CONFIG_PREEMPTION > #define preempt_enable() \ > do { \ > barrier(); \ > if (unlikely(preempt_count_dec_and_test())) \ > __preempt_schedule(); \ > + else if (unlikely(raw_cpu_read(rcu_data.rcu_urgent_qs))) \ > + rcu_all_qs_check(); It's still bloat and we can debate this once we come to the conclusion that the simple forced reschedule is not sufficient. Until then debating this is just an academic exercise. Thanks, tglx