Date: Thu, 4 Dec 1997 23:13:06 -0500 (EST) From: cgull+usenet-881294066@smoke.marlboro.vt.us To: davidg@freebsd.org, dg@root.com, hackers@freebsd.org Subject: fatal kernel bug in -current, or pointy hat time :) Message-ID: <199712050413.XAA04479@smoke.marlboro.vt.us>
index | next in thread | raw e-mail
[-- Attachment #1 --]
DG's performance-tweaking patch last night to the kernel malloc left
out a little something.
There's a little problem with the structure ordering rearrangement in
sys/malloc.h: the initializer for the struct needs to be rearranged ,
too :) This causes malloc to think it has no memory available, which
is quickly fatal. In my case (and probably everybody else's) it
causes a null pointer dereference and kernel page fault.
The first part of the patch in this batch fixes this bug.
The other two parts follow on my earlier ddb_input malloc-bug patch,
and are much less important.
Now, not having commit privileges means I don't have a FreeBSD-labeled
pointy hat handy...would somebody send it round? :)
--jh
[-- Attachment #2 --]
--- sys/malloc.h.old Thu Dec 4 03:44:22 1997
+++ sys/malloc.h Thu Dec 4 22:26:40 1997
@@ -63,7 +63,8 @@
};
#define MALLOC_DEFINE(type, shortdesc, longdesc) \
- struct malloc_type type[1] = { { shortdesc, M_MAGIC } }; \
+ struct malloc_type type[1] = { { NULL, 0, 0, 0, 0, 0, 0, \
+ M_MAGIC, shortdesc, 0, 0 } }; \
struct __hack
#define MALLOC_DECLARE(type) \
--- kern/kern_malloc.c.old Thu Nov 6 22:39:34 1997
+++ kern/kern_malloc.c Thu Dec 4 20:47:39 1997
@@ -408,6 +408,9 @@
if (type->ks_magic != M_MAGIC)
panic("malloc type lacks magic");
+ if (cnt.v_page_count == 0)
+ panic("malloc_init not allowed before vm init");
+
/*
* Limit maximum memory for each type to 60% of malloc area size or
* 60% of physical memory, whichever is smaller.
--- ddb/db_input.c.dist Thu Nov 6 22:37:29 1997
+++ ddb/db_input.c Thu Dec 4 22:36:58 1997
@@ -32,7 +32,6 @@
*/
#include <sys/param.h>
-#include <sys/malloc.h>
#include <sys/systm.h>
#include <machine/cons.h>
[-- Attachment #3 --]
--
Mr. Belliveau said, "the difference was the wise, John Hood, cgull
intelligent look on the face of the cow." He was @
*so* right. --Ofer Inbar smoke.marlboro.vt.us
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712050413.XAA04479>
