summaryrefslogtreecommitdiffstats
path: root/include/net/dst.h
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-08-07 10:55:45 +0000
committerDavid S. Miller <davem@davemloft.net>2012-08-08 16:00:28 -0700
commita37e6e344910a43b9ebc2bbf29a029f5ea942598 (patch)
tree028fe1af3e85510fa7c341bfe3dadd099189156b /include/net/dst.h
parent0c03eca3d995e73d691edea8c787e25929ec156d (diff)
downloadlinux-a37e6e344910a43b9ebc2bbf29a029f5ea942598.tar.gz
linux-a37e6e344910a43b9ebc2bbf29a029f5ea942598.tar.bz2
linux-a37e6e344910a43b9ebc2bbf29a029f5ea942598.zip
net: force dst_default_metrics to const section
While investigating on network performance problems, I found this little gem : $ nm -v vmlinux | grep -1 dst_default_metrics ffffffff82736540 b busy.46605 ffffffff82736560 B dst_default_metrics ffffffff82736598 b dst_busy_list Apparently, declaring a const array without initializer put it in (writeable) bss section, in middle of possibly often dirtied cache lines. Since we really want dst_default_metrics be const to avoid any possible false sharing and catch any buggy writes, I force a null initializer. ffffffff818a4c20 R dst_default_metrics Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r--include/net/dst.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/dst.h b/include/net/dst.h
index baf597890064..621e3513ef5e 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -110,7 +110,7 @@ struct dst_entry {
};
extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
-extern const u32 dst_default_metrics[RTAX_MAX];
+extern const u32 dst_default_metrics[];
#define DST_METRICS_READ_ONLY 0x1UL
#define __DST_METRICS_PTR(Y) \