Re: [PATCH v5 0/7] Reduce cache miss for snmp_fold_field

From: David Miller
Date: Wed Sep 28 2016 - 05:31:23 EST


From: Jia He <hejianet@xxxxxxxxx>
Date: Wed, 28 Sep 2016 14:22:21 +0800

> v5:
> - order local variables from longest to shortest line

I still see many cases where this problem still exists. Please
do not resubmit this patch series until you fix all of them.

Patch #2:

-static int snmp_seq_show(struct seq_file *seq, void *v)
+static int snmp_seq_show_ipstats(struct seq_file *seq, void *v)
{
int i;
+ u64 buff64[IPSTATS_MIB_MAX];
struct net *net = seq->private;

The order should be "net" then "buff64" then "i".

+static int snmp_seq_show_tcp_udp(struct seq_file *seq, void *v)
+{
+ int i;
+ struct net *net = seq->private;
+ unsigned long buff[TCPUDP_MIB_MAX];

The order should be "buff", "net", then "i".

Patch #3:

@@ -192,13 +197,19 @@ static void snmp6_seq_show_item(struct seq_file *seq, void __percpu *pcpumib,
const struct snmp_mib *itemlist)
{
int i;
- unsigned long val;
-
...
+ unsigned long buff[SNMP_MIB_MAX];

The order should be "buff" then "i".

@@ -206,10 +217,13 @@ static void snmp6_seq_show_item64(struct seq_file *seq, void __percpu *mib,
const struct snmp_mib *itemlist, size_t syncpoff)
{
int i;
+ u64 buff64[SNMP_MIB_MAX];

Likewise.

I cannot be any more explicit in my request than this.