[PATCH -v4 0/2] printk.devkmsg: Ratelimit it by default

From: Borislav Petkov
Date: Fri Jul 08 2016 - 05:19:05 EST

From: Borislav Petkov <bp@xxxxxxx>

Hi all,

sorry for spamming so quickly again and not waiting for a week before
resubmitting but I believe the stuff is ready for 4.8.

So here's v4 with all the minor review comments addressed.



here's v3 integrating Ingo's comments. The thing is called
printk.devkmsg= or printk_devkmsg now, depending on cmdline option or


here's v2 with the requested sysctl option kernel.printk_kmsg and
locking of the setting when printk.kmsg= is supplied on the command

Patch 1 is unchanged.

Patch 2 has grown the sysctl addition.


Rostedt is busy so I took Linus' old patch and Steven's last v2 and
split and extended them with the comments people had on the last thread:


I hope, at least.

So it is ratelimiting by default, with "on" and "off" cmdline options. I
called the option somewhat a bit shorter too: "printk.kmsg"

The current use cases of this and of which I'm aware are:

* debug the kernel and thus shut up all interfering input from
userspace, i.e. boot with "printk.kmsg=off"

* debug userspace (and by that I mean systemd) by booting with
"printk.kmsg=on" so that the ratelimiting is disabled and the kernel log
gets all the spew.


Please queue,

Borislav Petkov (2):
ratelimit: Extend to print suppressed messages on release
printk: Add kernel parameter to control writes to /dev/kmsg

Documentation/kernel-parameters.txt | 6 +++
Documentation/sysctl/kernel.txt | 14 ++++++
include/linux/printk.h | 7 +++
include/linux/ratelimit.h | 38 +++++++++++++---
kernel/printk/printk.c | 86 +++++++++++++++++++++++++++++++++----
kernel/sysctl.c | 9 ++++
lib/ratelimit.c | 10 +++--
7 files changed, 153 insertions(+), 17 deletions(-)