瀏覽代碼

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/[email protected]/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 <[email protected]>
(cherry picked from commit abc5b28db164dc2d807750cb2baae91e288c84a9)
Rafał Miłecki 3 年之前
父節點
當前提交
8b4169f1c9
共有 1 個文件被更改,包括 1 次插入0 次删除
  1. 1 0
      config/Config-devel.in

+ 1 - 0
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