Subject: Re: garbled dmesg
To: Geert Hendrickx <ghen@NetBSD.org>
From: Allen Briggs <briggs@netbsd.org>
List: netbsd-users
Date: 12/14/2005 21:36:19
On Wed, Dec 14, 2005 at 02:00:42PM +0100, Geert Hendrickx wrote:
> one of my machines always produces a garbled dmesg: it begins with a lot of
> ^M characters, the end is truncated (it shows more  devices on the screen
> during boot), and again followed by a sequence of ^M (see attachment).  I
> see this both in dmesg(8) and in /var/run/dmesg.boot.  Any idea what could
> be causing this?  The machine is a pentium4 EM64T running 3.0_RC6/i386.  

Yes.  I've seen this before.  I ran into this on i386, but I think amd64
is also susceptible to this condition.  Basically, the i386 and amd64
record memory regions as reported by the BIOS.  If the top one isn't
large enough to hold the msgbuf, there is a bug in the initial vm
setup.

I did two things to fix this in another source tree:

	1) Do not add the BIOS regions if they are 1 page or smaller.

	2) Fix the bug in tracking msgbuf_paddr vs. msgbuf_vaddr vs.
	   MSGBUFSIZE between init386() and cpu_startup() (basically
	   the assumption in cpu_startup() that the msgbuf hasn't been
	   truncated).

Sorry I can't provide a patch at this time.  It should be quick & easy
to fix.  Quicker than it was to find, at any rate.

-allen

-- 
                  Use NetBSD!  http://www.NetBSD.org/