Re: Wanted: a limit on kernel log buffer size

Randy.Dunlap (rddunlap@osdl.org)
Sun, 6 Apr 2003 20:35:59 -0700 (PDT)


>> Some people (who will mercifully go unnamed) just will _not_
>> read the documentation, and set the kernel log buffer shift
>> to 31 on a 256MB machine. This attempt to allocate 2GB of memory for the
>> buffer results in an unbootable kernel.
>>
>> Suggestions?
>
> This is a multi-part answer. Say, 5 parts.
>
> a. If someone won't read the help text, how can we help them?
>
> b. If we make a 2 GB log buffer size a compile-time error, will
> they read that?
>
> c. If we make it a compile-time warning, will they read that?
>
> d. What limit(s) do you suggest? I can try to add some limits.
>
> e. This kind of config limiting should be done in the config system IMO.
> I've asked Roman for that capability....

Here's a patch that limits kernel log buffer size to 1 MB max.
Comments?

I'm inserting it here via cut-and-paste, so it might not be all clean.
Patch is to 2.5.66-PV (plain vanilla).

patch_name: logbuf-limit.patch
patch_version: 2003-04-06.20:28:43
author: Randy.Dunlap <rddunlap@osdl.org>
description: limit kernel log buffer size to 1 MB
product: Linux
product_versions: 2.5.66
diffstat: =
kernel/printk.c | 3 +++
1 files changed, 3 insertions(+)

diff -Naur ./kernel/printk.c%LBLIM ./kernel/printk.c
--- ./kernel/printk.c%LBLIM 2003-04-06 20:27:28.000000000 -0700
+++ ./kernel/printk.c 2003-04-06 20:27:53.000000000 -0700
@@ -34,6 +34,9 @@

#define LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
#define LOG_BUF_MASK (LOG_BUF_LEN-1)
+#if (CONFIG_LOG_BUF_SHIFT > 20)
+#error CONFIG_LOG_BUF_SHIFT is ridiculously large (more than 1 MB).
+#endif

/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/