[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <a41b5ad3-d052-49b8-e038-b020c1dc6788@tuyoix.net>
Date: Wed, 10 Aug 2022 14:25:11 -0600 (MDT)
From: Marc Aurèle La France <tsi@...oix.net>
To: Petr Mladek <pmladek@...e.com>,
Sergey Senozhatsky <senozhatsky@...omium.org>,
linux-kernel@...r.kernel.org
Subject: [PATCH] printk: Export log_buf_len to userland
Make the kernel log's buffer size available to userland so it can be used with
`dmesg -s`.
This change is not eligible for stable@.
Please Reply-To-All.
Thanks and have a great day.
Marc.
Signed-off-by: Marc Aurèle La France <tsi@...oix.net>
diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/include/linux/printk.h devel-5.17.1/include/linux/printk.h
--- linux-5.17.1/include/linux/printk.h 2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/include/linux/printk.h 2022-03-28 07:14:10.803008293 -0600
@@ -318,6 +337,7 @@ extern void __printk_cpu_unlock(void);
#endif /* CONFIG_SMP */
extern int kptr_restrict;
+extern u32 log_buf_len;
/**
* pr_fmt - used by the pr_*() macros to generate the printk format string
diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/kernel/printk/printk.c devel-5.17.1/kernel/printk/printk.c
--- linux-5.17.1/kernel/printk/printk.c 2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/kernel/printk/printk.c 2022-03-28 07:14:10.803008293 -0600
@@ -404,7 +404,7 @@ static struct latched_seq clear_seq = {
#define LOG_BUF_LEN_MAX (u32)(1 << 31)
static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
static char *log_buf = __log_buf;
-static u32 log_buf_len = __LOG_BUF_LEN;
+u32 log_buf_len = __LOG_BUF_LEN;
/*
* Define the average message size. This only affects the number of
diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/kernel/printk/sysctl.c devel-5.17.1/kernel/printk/sysctl.c
--- linux-5.17.1/kernel/printk/sysctl.c 2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/kernel/printk/sysctl.c 2022-03-28 07:14:10.803008293 -0600
@@ -22,6 +22,13 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
static struct ctl_table printk_sysctls[] = {
{
+ .procname = "log_buf_len",
+ .data = &log_buf_len,
+ .maxlen = sizeof(u32),
+ .mode = 0444,
+ .proc_handler = proc_dointvec,
+ },
+ {
.procname = "printk",
.data = &console_loglevel,
.maxlen = 4*sizeof(int),
Powered by blists - more mailing lists