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

Reply via email to