Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8945043 authored by Florian Westphal's avatar Florian Westphal Committed by David S. Miller
Browse files

sched: place state, next_sched and gso_skb in same cacheline again



Earlier commits removed two members from struct Qdisc which places
next_sched/gso_skb into a different cacheline than ->state.

This restores the struct layout to what it was before the removal.
Move the two members, then add an annotation so they all reside in the
same cacheline.

This adds a 16 byte hole after cpu_qstats.

The hole could be closed but as it doesn't decrease total struct size just
do it this way.

Reported-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a09ceb0e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -71,11 +71,11 @@ struct Qdisc {
	struct gnet_stats_basic_cpu __percpu *cpu_bstats;
	struct gnet_stats_queue	__percpu *cpu_qstats;

	struct Qdisc		*next_sched;
	struct sk_buff		*gso_skb;
	/*
	 * For performance sake on SMP, we put highly modified fields at the end
	 */
	struct Qdisc		*next_sched ____cacheline_aligned_in_smp;
	struct sk_buff		*gso_skb;
	unsigned long		state;
	struct sk_buff_head	q;
	struct gnet_stats_basic_packed bstats;