aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2022-07-03 13:22:00 +0200
committerRafał Miłecki <rafal@milecki.pl>2022-07-03 13:59:12 +0200
commitabc5b28db164dc2d807750cb2baae91e288c84a9 (patch)
tree9a5a39ef0ea23f0089d9da2d1c5ad6b009258343 /config
parent24eee4b2443d75f51a91fd321c68705a6f376ccc (diff)
downloadupstream-abc5b28db164dc2d807750cb2baae91e288c84a9.tar.gz
upstream-abc5b28db164dc2d807750cb2baae91e288c84a9.tar.bz2
upstream-abc5b28db164dc2d807750cb2baae91e288c84a9.zip
bcm53xx: use -falign-functions=32 for kernel compilation
Northstar SoCs have pretty small CPU caches and their performance is heavily affected by cache hits & misses. It means that all kind of random code changes can affect performance as they often reorganize (change alignment & possibly reorder) kernel symbols. It was discussed in ARM / net mailinglists: 1. ARM router NAT performance affected by random/unrelated commits [1] [2] 2. Optimizing kernel compilation / alignments for network performance [3] [4] It seems that -falign-functions can be used as a partial workaround. It doesn't solve all cases (e.g. documented watchdog one [5]) but it surely helps with many of them. A complete long term solution may be PGO (profile-guided optimization) but it isn't available at this point. [1] https://lkml.org/lkml/2019/5/21/349 [2] https://www.spinics.net/lists/linux-block/msg40624.html [3] https://lore.kernel.org/linux-arm-kernel/066fc320-dc04-11a4-476e-b0d11f3b17e6@gmail.com/T/ [4] https://www.spinics.net/lists/netdev/msg816103.html [5] http://lists.openwrt.org/pipermail/openwrt-devel/2022-July/038989.html Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'config')
-rw-r--r--config/Config-devel.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/config/Config-devel.in b/config/Config-devel.in
index a068f694e5..87f9157106 100644
--- a/config/Config-devel.in
+++ b/config/Config-devel.in
@@ -76,6 +76,7 @@ menuconfig DEVEL
config KERNEL_CFLAGS
string "Kernel extra CFLAGS" if DEVEL
+ default "-falign-functions=32" if TARGET_bcm53xx
default ""
config EXTERNAL_KERNEL_TREE