Enlarge Linux Kernel Log Buffer more that 2M

ARH picture ARH · Dec 24, 2014 · Viewed 9.7k times · Source

I am in the process of collecting some sort of Linux Kernel activities. I have placed multiple printk statements with in the kernel source code and would like to monitor those during regular kernel activities. Unfortunately, I have realized that the Kernel Log Buffer size (CONFIG_LOG_BUF_SHIFT) cannot be more that 2^21 which is essentially equal to 2M entries.

Is there any other way to record more than 2M Kernel messages ?

Answer

askb picture askb · Dec 25, 2014

You can set the kernel log buffer to log_buf_len=4M in your /boot/grub/grub.conf. This should increase the log buffer size to 4 MiB. Note you can also edit the grub during boot, and append the log_buf_len=4M at the end of the line starting with the kernel ....

CONFIG_LOG_BUF_SHIFT shows the default size of the kernel log buffer not the maximum size, you can set this to larger value but would require to recompile the kernel.

ex:
2 ^ 19 = 512 KiB
2 ^ 20 = 1 MiB
2 ^ 21 = 2 MiB
2 ^ 22 = 4 MiB

Which flavor or kernel version of Linux are you on, this works well on SuSE and RHEL.