On 24 September 2013 02:00, Jesse Gross <je...@nicira.com> wrote: > Search net/core/dev.c for RECURSION_LIMIT.
Ahh, thanks for the pointers.. This stuff was added in 2.6.37 And you said this earlier: "This loop checker is just compatibility code since the exact same logic exists in net/core/dev.c on newer kernels." So does it mean that people working on kernels > 2.6.37 don't actually need the loop checker code from OVS? And if has to be fixed for RT then it must be fixed in net/core/dev.c alone (For latest kernels)?? Now that code in dev.c does this: rcu_read_lock_bh()... And its implementation is: static inline void rcu_read_lock_bh(void) { local_bh_disable(); #ifdef CONFIG_PREEMPT_RT_FULL rcu_read_lock(); #else __acquire(RCU_BH); rcu_lock_acquire(&rcu_bh_lock_map); rcu_lockdep_assert(!rcu_is_cpu_idle(), "rcu_read_lock_bh() used illegally while idle"); #endif } And rcu_read_lock() disables preemption (Atleast when CONFIG_PREEMPT_RCU isn't enabled)... And which would safeguard our counters from being accessed simultaneously.. And so that code wouldn't break for RT usecase.. And so, we might not require any RT support patch for OVS for kernels > 2.6.37?? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev