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

Commit e8d76033 authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan
Browse files

net: add a per-cpu counter for the number of frames coalesced in GRO



A low cost method of determining GRO statistics is required. This
change introduces a new counter which tracks whenever GRO coalesces
ingress packets. The counter is per-CPU and exposed in
/proc/net/softnet_stat as the last column of data. No user space
impact is expected as a result of this change. However, this change
should be reverted if legacy tools have problems with the new column
in softnet_stat.

CRs-Fixed: 2156182
Change-Id: I05965c0cb150947935d5977884cc4d583b37131d
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
parent 7bc027e5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2748,6 +2748,8 @@ struct softnet_data {
	unsigned int		processed;
	unsigned int		time_squeeze;
	unsigned int		received_rps;
	unsigned int            gro_coalesced;

#ifdef CONFIG_RPS
	struct softnet_data	*rps_ipi_list;
#endif
+1 −0
Original line number Diff line number Diff line
@@ -4671,6 +4671,7 @@ static int napi_gro_complete(struct sk_buff *skb)
	}

out:
	__this_cpu_add(softnet_data.gro_coalesced, NAPI_GRO_CB(skb)->count > 1);
	return netif_receive_skb_internal(skb);
}

+6 −6
Original line number Diff line number Diff line
@@ -159,12 +159,12 @@ static int softnet_seq_show(struct seq_file *seq, void *v)
	rcu_read_unlock();
#endif

	seq_printf(seq,
		   "%08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x\n",
	seq_printf
	(seq, "%08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x\n",
	 sd->processed, sd->dropped, sd->time_squeeze, 0,
	 0, 0, 0, 0, /* was fastroute */
	 0, /* was cpu_collision */
		   sd->received_rps, flow_limit_count);
	 sd->received_rps, flow_limit_count, sd->gro_coalesced);
	return 0;
}