meta-nuvoton: linux: npcm8xx: remove CONFIG_PREEMPT
We’ve run various benchmark test tools between with and w/o this
configuration. This is a tradeoff for latency and throughput.
However, according our test results, w/o this configuration that
can get more benefit for our system. Thus, we need to remove it.
1. From systemd-analyze test result:
w/o CONFIG_PREEMPT that can save system startup finish time around 26s.
And all services loading time got improved obviously when booting up.
w/o test case:
Startup finished in 4.208s (kernel) + 31.126s (userspace) = 35.335s
multi-user.target reached after 24.453s in userspace.
13.620s phosphor-pid-control.service
13.252s xyz.openbmc_project.Software.BMC.Updater.service
10.936s xyz.openbmc_project.User.Manager.service
10.104s xyz.openbmc_project.Chassis.Control.Power@0.service
9.396s xyz.openbmc_project.LED.GroupManager.service
9.360s xyz.openbmc_project.Network.service
9.309s xyz.openbmc_project.State.BMC.service
8.603s xyz.openbmc_project.Settings.service
8.357s xyz.openbmc_project.Dump.Manager.service
8.210s xyz.openbmc_project.Logging.service
8.018s xyz.openbmc_project.Software.Download.service
7.967s xyz.openbmc_project.Syslog.Config.service
7.912s xyz.openbmc_project.EntityManager.service
with test case:
Startup finished in 4.385s (kernel) + 56.799s (userspace) = 1min 1.184s
multi-user.target reached after 49.875s in userspace.
36.118s xyz.openbmc_project.Software.BMC.Updater.service
32.475s xyz.openbmc_project.Chassis.Control.Power@0.service
32.347s xyz.openbmc_project.EntityManager.service
31.571s xyz.openbmc_project.User.Manager.service
29.570s xyz.openbmc_project.Network.service
27.591s xyz.openbmc_project.LED.GroupManager.service
26.401s xyz.openbmc_project.State.BMC.service
22.871s xyz.openbmc_project.Logging.service
22.712s xyz.openbmc_project.Syslog.Config.service
21.975s nslcd.service
21.896s xyz.openbmc_project.Dump.Manager.service
21.121s xyz.openbmc_project.ObjectMapper.service
20.942s avahi-daemon.service
2. From system-bootchart test result: (more detail in bootchart.svg)
w/o CONFIG_PREEMPT that can save IO utilization finish time around 26s.
w/o test case: Idle time: 21.789s
with test case: Idle time: 47.155s
3. From sysbench test result:
w/o CONFIG_PREEMPT that throughput got improved and latency doesn’t
increase obviously.
w/o test case:
File operations:
reads/s: 443.34
writes/s: 297.11
fsyncs/s: 1139.77
Throughput:
read, MiB/s: 6.93
written, MiB/s: 4.64
Latency (ms):
min: 0.00
avg: 9.48
max: 306.51
95th percentile: 65.65
sum: 160735.37
with test case:
File operations:
reads/s: 398.14
writes/s: 266.95
fsyncs/s: 1046.28
Throughput:
read, MiB/s: 6.22
written, MiB/s: 4.17
Latency (ms):
min: 0.00
avg: 10.58
max: 321.21
95th percentile: 73.13
sum: 159964.46
4. From fio test result:
w/o CONFIG_PREEMPT that latency doesn’t increase obviously also.
w/o test case:
[read] 512 4K 8K 16K 64K 128K 256K 512K
[lat] 8.74 67.91 135.66 270.93 1076.28 2133.23 4198.83 8111.18 (ms)
[randread] 512 4K 8K 16K 64K 128K 256K 512K
[lat] 8.99 68.14 135.83 270.90 1075.77 2131.96 4194.33 8099.78 (ms)
with test case:
[read] 512 4K 8K 16K 64K 128K 256K 512K
[lat] 8.90 68.18 136.14 272.06 1079.31 2142.20 4207.71 7952.04 (ms)
[randread] 512 4K 8K 16K 64K 128K 256K 512K
[lat] 9.33 68.70 136.41 272.31 1080.27 2141.74 4208.37 8070.45 (ms)
Signed-off-by: Tim Lee <timlee660101@gmail.com>
Change-Id: I39f2c1ecc2c4d713b5fce7629cb95d8408526b52
diff --git a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/npcm8xx_defconfig b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/npcm8xx_defconfig
index 1bf2314..3998560 100644
--- a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/npcm8xx_defconfig
+++ b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/npcm8xx_defconfig
@@ -3,7 +3,6 @@
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y