From: Andrew Halaney <ahalaney(a)redhat.com>
redhat/configs/common: Turn on CONFIG_IKCONFIG_PROC
Some users expect to check /proc/config.gz instead of
/boot/config-$(uname -r), and both are valid approaches. In fact, one
could argue it is easier to trust the contents of /proc/config.gz than
it is to trust the config install at /boot/.
There's a cost to kernel size (mainly the gzipped size of the config
file), but ~50 KB isn't much compared to the size of the ~30 MB kernel
image I just compiled using the fedora aarch64 configs.
bloat-o-meter output below doesn't show the increase because the config
is injected with .incbin and uses symbol labels to grab it in C code:
[ahalaney@halaney-x13s kernel-ark]$ ./scripts/bloat-o-meter vmlinux.original
vmlinux.ikconfig_proc
add/remove: 7/1 grow/shrink: 0/0 up/down: 320/-8 (312)
Function old new delta
ikconfig_init - 100 +100
config_gz_proc_ops - 88 +88
ikconfig_read_current - 68 +68
ikconfig_cleanup - 40 +40
e843419@0969_0000fd78_82f4 - 8 +8
e843419@08a0_0000e7d2_a58 - 8 +8
e843419@074e_0000bea9_8988 - 8 +8
e843419@0170_000025c9_53a8 8 - -8
Total: Before=31935449, After=31935761, chg +0.00%
[ahalaney@halaney-x13s kernel-ark]$ echo "31935761 - 31935449" | bc
312
[ahalaney@halaney-x13s kernel-ark]$
But you can still grab that bit too with a little more work:
[ahalaney@halaney-x13s kernel-ark]$ nm vmlinux.ikconfig_proc| grep kernel_config_data
ffff800008c78540 D kernel_config_data
ffff800008c8257e D kernel_config_data_end
[ahalaney@halaney-x13s kernel-ark]$ echo 'ibase=16; 8C8257E - 8C78540' | bc
41022
[ahalaney@halaney-x13s kernel-ark]$ ls -la kernel/config_data.gz
-rw-r--r-- 1 ahalaney ahalaney 41022 Sep 30 15:43 kernel/config_data.gz
[ahalaney@halaney-x13s kernel-ark]$
All in all that's not that much of a difference in the image size, so
let's enable this feature.
Signed-off-by: Andrew Halaney <ahalaney(a)redhat.com>
diff --git a/redhat/configs/common/generic/CONFIG_IKCONFIG
b/redhat/configs/common/generic/CONFIG_IKCONFIG
index blahblah..blahblah 100644
--- a/redhat/configs/common/generic/CONFIG_IKCONFIG
+++ b/redhat/configs/common/generic/CONFIG_IKCONFIG
@@ -1 +1 @@
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
diff --git a/redhat/configs/common/generic/CONFIG_IKCONFIG_PROC
b/redhat/configs/common/generic/CONFIG_IKCONFIG_PROC
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/generic/CONFIG_IKCONFIG_PROC
@@ -0,0 +1 @@
+CONFIG_IKCONFIG_PROC=y
--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2041