[ovs-dev] [PATCH] datapath: Change u64_stats_* to use _irq instead of _bh().

Jesse Gross jesse at nicira.com
Tue Jul 1 19:33:26 UTC 2014


On Tue, Jul 1, 2014 at 12:26 PM, Pravin Shelar <pshelar at nicira.com> wrote:
> On Tue, Jul 1, 2014 at 12:22 PM, Jesse Gross <jesse at nicira.com> wrote:
>> On Tue, Jul 1, 2014 at 11:33 AM, Pritesh Kothari (pritkoth)
>> <pritkoth at cisco.com> wrote:
>>>
>>> On Jul 1, 2014, at 11:18 AM, Pravin Shelar <pshelar at nicira.com> wrote:
>>>
>>>> why not just check for HAVE_U64_STATS_FETCH_BEGIN_IRQ?
>>>
>>> because of this which was added in 3.13, i guess:
>>>
>>> -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
>>> -
>>> -#if BITS_PER_LONG == 32 && defined(CONFIG_SMP)
>>> -# define u64_stats_init(syncp)  seqcount_init(syncp.seq)
>>> -#else
>>> -# define u64_stats_init(syncp)  do { } while (0)
>>> -#endif
>>
>> Yes, that's the reason why. Thanks to both of you for the reviews, I
>> pushed this to master and back to branch-2.1.
>
> HAVE_U64_STATS_FETCH_BEGIN_IRQ should get defined for all kernel which
> defines u64_stats_fetch_begin_irq().

It's u64_stats_init() that's potentially the issue. Even though this
came earlier than u64_stats_fetch_begin_irq() it's not guaranteed to
exist because the latter is being backported by distributions.



More information about the dev mailing list