DragonFly commits List (threaded) for 2004-02
Re: cvs commit: src/sys/i386/isa apic_vector.s clock.c src/sys/kern kern_intr.c kern_sig.c kern_slaballoc.c kern_switch.c kern_systimer.c kern_upcall.c lwkt_msgport.c lwkt_thread.c lwkt_token.c src/sys/sys slaballoc.h
On Wed, Feb 11, 2004 at 10:57:49PM -0800, Matthew Dillon wrote:
> dillon 2004/02/11 22:57:49 PST
> DragonFly src repository
> Modified files:
> sys/i386/isa apic_vector.s clock.c
> sys/kern kern_intr.c kern_sig.c kern_slaballoc.c
> kern_switch.c kern_systimer.c
> kern_upcall.c lwkt_msgport.c
> lwkt_thread.c lwkt_token.c
> sys/sys slaballoc.h
> Change lwkt_send_ipiq() and lwkt_wait_ipiq() to take a globaldata_t instead
> of a cpuid. This is part of an ongoing cleanup to use globaldata_t's to
> reference other cpus rather then their cpu numbers, reducing the number of
> serialized memory indirections required in a number of code paths and
> making more context available to the target code.
> Revision Changes Path
> 1.16 +2 -2 src/sys/i386/isa/apic_vector.s
> 1.12 +1 -1 src/sys/i386/isa/clock.c
> 1.14 +1 -1 src/sys/kern/kern_intr.c
> 1.26 +1 -1 src/sys/kern/kern_sig.c
> 1.16 +3 -2 src/sys/kern/kern_slaballoc.c
> 1.17 +2 -2 src/sys/kern/kern_switch.c
> 1.2 +1 -1 src/sys/kern/kern_systimer.c
> 1.5 +1 -1 src/sys/kern/kern_upcall.c
> 1.14 +2 -2 src/sys/kern/lwkt_msgport.c
> 1.52 +26 -19 src/sys/kern/lwkt_thread.c
> 1.3 +4 -4 src/sys/kern/lwkt_token.c
> 1.6 +1 -0 src/sys/sys/slaballoc.h
After this commit, the kernel built with gcc2 panics at the beginning of
the boot leaving the following message on the screen(from dmesg bufffer
survived across the reboot):
Copyright (c) 2003-2004 The DragonFly Project.
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x0
fault code = supervisor write, page not present
instruction pointer = 0x8:0xc01fc70e
stack pointer = 0x10:0xc0378cf0
frame pointer = 0x10:0xc0378d10
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 0 (thread0)
current thread = pri 44 (CRIT)
interrupt mask = net tty bio cam
trap number = 12
panic: page fault
The instruction pointer 0xc01fc70e is a few bytes past generic_bcopy
and is consistent.
Although the kernel compiled with gcc3 boots fine without problem,
I think it's good to know why it stopped working. What I tested so far
- reverting apic_vector.s to 1.15 didn't fix it.
- removing acpica from kernel config didn't fix it.
- whether or not doing buildworld with gcc2 before buildkernel didn't
make any difference.
- I've also tried the source from the following date tags, but anything
past the above commit won't boot if it's built with gcc2.
The only thing I can think of is that I did a buildworld with gcc3 and
installed it, so the boot code is compiled with gcc3 while the kernel is
with gcc2 which might have something to do with the panic.
In case anyone is interested, my kernel config is at