** Description changed:
+ [Impact]
+
+ * Too small dmsg kernel buf ring size leads to loosing/missing early
+ boot kernel messages which happen before journald starts slurping them
+ up and storing them on disc. This results in messages similar to this
+ one on boot "missed NN kernel messages on boot". This is especially
+ pronounced on arm64 as the default setting there is way lower than any
+ other 32bit or 64bit architecture we ship. Also amd64 appears to have
+ the highest setting of 18 among all architectures we ship. The best
+ course of action to bump all 64bit arches to 18, and keep all 32bit
+ arches at the current & upstream default of 17.
+
+ [Test Case]
+
+ * $ cat /boot/config-`uname -r` | grep CONFIG_LOG_BUF_SHIFT
+
+ on 64bit arches result should be: CONFIG_LOG_BUF_SHIFT=18
+ on 32bit arches result should be: CONFIG_LOG_BUF_SHIFT=17
+
+ * run systemd adt test, the boot-and-services test case should not fail
+ journald tests with "missed kernel messages" visible in the error logs.
+
+ [Regression Potential]
+
+ * Increasing the size of the log_buf, will increase kernel memory usage
+ which cannot be reclaimed. It will now become 256kb on arm64, ppc64el,
+ s390x instead of 8kB/128kb/128kb respectively. 32bit arches remain
+ unchanged at 128kb.
+
+ [Other Info]
+
+ * Original bug report
+
CONFIG_LOG_BUF_SHIFT
policy<{
'amd64' : '18',
'arm64' : '14',
'armhf' : '17',
'i386' : '17',
'ppc64el': '17',
's390x' : '17'}>
Please set CONFIG_LOG_BUF_SHIFT to at least 17 on arm64.
Potentially bump all 64-bit arches to 18 (or higher!) as was done on
amd64, meaning set 18 on arm64 s390x ppc64el.
I have a systemd autopkgtest test that asserts that we see Linux kernel
command line in the dmesg (journalctl -k -b). And it is consistently
failing on arm64 scalingstack KVM EFI machines with messages of "missing
81 kernel messages".
config LOG_BUF_SHIFT
int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
range 12 25
default 17
depends on PRINTK
help
Select the minimal kernel log buffer size as a power of 2.
The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
parameter, see below. Any higher size also might be forced
by "log_buf_len" boot parameter.
Examples:
17 => 128 KB
16 => 64 KB
15 => 32 KB
14 => 16 KB
13 => 8 KB
12 => 4 KB
14 sounds like redictiously low for arm64. given that 17 is default
across 32-bit arches, and 18 is default on amd64.
On a related note, we have CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT
policy<{'amd64': '13', 'arm64': '13', 'armhf': '13', 'i386': '13', 'ppc64el':
'13', 's390x': '13'}>
I'm not sure if we want to bump these up to LOG_BUF_SHIFT size or not.
Please backport this to xenial and up.
-
-
=== systemd ===
systemd, boot-and-services test case can bump the ring buffer before
running the tests.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1824864
Title:
CONFIG_LOG_BUF_SHIFT set to 14 is too low on arm64
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824864/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs