On Thu 06 Sep 2018 at 08:39, Kirill Tkhai <ktk...@virtuozzo.com> wrote:
> On 06.09.2018 11:30, Eric Dumazet wrote:
>> 
>> 
>> On 09/06/2018 12:58 AM, Vlad Buslov wrote:
>> 
>> ...
>> 
>>> diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
>>> index 18e22a5a6550..239c73f29471 100644
>>> --- a/include/net/sch_generic.h
>>> +++ b/include/net/sch_generic.h
>>> @@ -90,6 +90,7 @@ struct Qdisc {
>>>     struct gnet_stats_queue __percpu *cpu_qstats;
>>>     int                     padded;
>>>     refcount_t              refcnt;
>>> +   struct rcu_head         rcu;
>>>  
>>>     /*
>>>      * For performance sake on SMP, we put highly modified fields at the end
>> 
>> Probably better to move this at the end of struct Qdisc,
>> not risking unexpected performance regressions in fast path.
>
> Do you mean regressions on UP? On SMP it looks like this field
> fits in the unused gap created by:
>
>       struct sk_buff_head     gso_skb ____cacheline_aligned_in_smp;
>
> Kirill

Hi Eric, Kirill

I intentionally put rcu_head here in order for it not to be in same
cache line with "highly modified fields" (according to comment).

Reply via email to