Sebastian Andrzej Siewior [off-list ref] writes:
ovs_frag_data_storage is a per-CPU variable and relies on disabled BH for its
locking. Without per-CPU locking in local_bh_disable() on PREEMPT_RT
this data structure requires explicit locking.
Move ovs_frag_data_storage into the struct ovs_pcpu_storage which already
provides locking for the structure.
Cc: Aaron Conole <aconole@redhat.com>
Cc: Eelco Chaudron <echaudro@redhat.com>
Cc: Ilya Maximets <i.maximets@ovn.org>
Cc: dev@openvswitch.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
Tested it with the same script, and see that it preforms inline with my
unpatched results. This is without CONFIG_PREEMPT, so I didn't do any
checks on a 'RT' system. That does make me wonder whether it really is
my system or something in the way local lock is being used, or even a
misunderstanding about the possible contention scenarios.
I also did check the openvswitch userspace kernel test suite and that
also passes. So looks good that way.