On Mon, May 23, 2016 at 11:09 AM, Jesse Gross <je...@kernel.org> wrote: > On Sun, May 22, 2016 at 9:36 PM, pravin shelar <pshe...@ovn.org> wrote: >> On Fri, May 20, 2016 at 6:46 PM, Jesse Gross <je...@kernel.org> wrote: >>> On Wed, May 4, 2016 at 4:35 PM, Pravin B Shelar <pshe...@ovn.org> wrote: >>>> diff --git a/datapath/linux/compat/include/net/dst_cache.h >>>> b/datapath/linux/compat/include/net/dst_cache.h >>>> new file mode 100644 >>>> index 0000000..5904f2c >>>> --- /dev/null >>>> +++ b/datapath/linux/compat/include/net/dst_cache.h >>> [...] >>>> +#define ovs_dst_cache_get dst_cache_get >>>> +struct dst_entry *ovs_dst_cache_get(struct dst_cache *dst_cache); >>> >>> I believe these are all straight backports of what is upstream. Given >>> that, maybe rpl_ is more appropriate than ovs_? Usually, the ovs_ >>> functions are ones that have required different functionality in some >>> way. >>> >> Since whole dst-cache module is backport, I used ovs_ prefix. But I am >> fine with rpm_ prefix also. > > I guess rpl_ still seems a little more appropriate but there isn't > really that much of a distinction. (I guess we could just settle on > one or the other for all functions going forward.) > >>>> diff --git a/datapath/linux/compat/utils.c b/datapath/linux/compat/utils.c >>>> index 0ee6e80..7008ecf 100644 >>>> --- a/datapath/linux/compat/utils.c >>>> +++ b/datapath/linux/compat/utils.c >>>> @@ -65,3 +65,28 @@ bool rpl___net_get_random_once(void *buf, int nbytes, >>>> bool *done, >>>> EXPORT_SYMBOL_GPL(rpl___net_get_random_once); >>>> >>>> #endif >>>> + >>>> +#ifdef NEED_ALLOC_PERCPU_GFP >>>> +void __percpu *__alloc_percpu_gfp(size_t size, size_t align, gfp_t gfp) >>> >>> It looks like on 4.6 at least, this is just a call to pcpu_alloc(), >>> which exists back to 3.10. Is there a reason that we need something >>> more? >> >> I am not sure which 4.6 are looking at; But the release kernel used gfp >> version. >> http://lxr.free-electrons.com/source/net/core/dst_cache.c#L144 > > I actually meant the implementation of __alloc_precpu_gfp() rather > than the caller. It seems like it is just a very simple call to > pcpu_alloc(): > http://lxr.free-electrons.com/source/mm/percpu.c#L1065
pcpu_alloc() does not take gfp flags, so it can not allocate the object in atomic context. Therefore it can not be just call to older pcpu_alloc(). _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev