Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 1998 00:00:45 -0400 (EDT)
From:      Chuck Robey <chuckr@mat.net>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: panic 
Message-ID:  <Pine.BSF.4.05.9810172355150.345-100000@picnic.mat.net>
In-Reply-To: <199810180305.LAA23805@spinner.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 18 Oct 1998, Peter Wemm wrote:

> 
> It is useful, but bad news. :-(
> 
> It means that the SYSINIT() process got scrambled somehow.
> 
> There are a bunch of sysinit's like this:
> 
> static moduledata_t root_bus_mod = {
>         "rootbus",
>         root_bus_module_handler,
>         0 
> };
> DECLARE_MODULE(rootbus, root_bus_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
> .. which turns into
> SYSINIT(rootbusmodule, SI_SUB_DRIVERS, SI_ORDER_FIRST, 
> 	module_register_init, &root_bus_mod)
> 
> Effectively, this causes init_main.c to call
>   module_register_init((void *)&root_bus_mod);
> 
> module_register_init(void *arg)
> {
>     moduledata_t* data = (moduledata_t*) arg;
>     error = module_register(data->name, data->evhand, data->priv, data->_file);
> }
> module_register(const char* name, modeventhand_t handler, void* arg, void *file)
> {
>     size_t namelen;
>     namelen = strlen(name) + 1;
>               ^^^^^^^^^^^^ Here is where it's crashing.
> 
> And there's the dilemma.  Either the name in the moduledata_t struct got 
> smashed somehow, or the sysinit process is passing the wrong pointer to 
> module_register_init().
> 
> I picked this one out for the example for no particular reason, this has 
> been in the kernel for a while.  There are a number of these activated by 
> new definitions of things like VFS_SET(), VNODEOP_SET(), EXEC_SET() macros 
> in src/sys/*.h.
> 
> Hmm, you don't have MATH_EMULATE or GPL_MATH_EMULATE options turned on by 
> any chance, do you?  Take them out if so.

Peter, I just got home (I'd warned previously I would be out for several
hours, but I didn't expect it to get this hot this soon).  Let me hit
some points first.

Earlier there was a question from Mike about boot blocks.  I have never
done anything to my kernel builds.  They were aout.  Has that changed in
some way?  I'm pretty certain it's still aout, right, for the kernel?  I
haven't updated my boot blocks, because I thought that for aout, it
wasn't called for.  Correct me if I'm wrong.

The hit is happening about like you say, and if that's a string, I can
use ddb to hunt for it, I just can't seem to coax ddb to dump a kernel
core file.

options GPL_MATH_EMULATE has always been in my kernel config.  I'll take
it out now.  I'm surprised, I'd seen nothing about taking it out
anywhere.

I just got home, I am going to ingest some protein before you get any
data out of me ...

> 
> Another thought..  Please try a 'make clean' and do a rebuild of the kernel.
> 
> Also, it would be helpful to know if the same problem happens with a plain 
> a.out kernel booted from the standard bootblocks, not /boot/loader.  I'd 
> be suprised if it was different though.
> 
> Cheers,
> -Peter
> 
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
> 
> 

----------------------------+-----------------------------------------------
Chuck Robey                 | Interests include any kind of voice or data 
chuckr@glue.umd.edu         | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770         | I run Journey2 and picnic (FreeBSD-current)
(301) 220-2114              | and jaunt (NetBSD).
----------------------------+-----------------------------------------------





To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9810172355150.345-100000>