Re: Panic: GPF in kernel mode in fork_exit() (prior to FS mouont)

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Mon, 23 Nov 2015 15:33:17 +0200
On Mon, Nov 23, 2015 at 05:23:20AM -0800, David Wolfskill wrote:
> This was the "smoke test" boot after building:
> 
> FreeBSD  11.0-CURRENT FreeBSD 11.0-CURRENT #253  r291193M/291193:1100090: Mon Nov 23 04:43:34 PST 2015     root_at_g1-252.catwhisker.org:/common/S4/obj/usr/src/sys/CANARY  amd64
> 
> and (as noted), it happened fairly early in the boot sequence --
> before the file systems were mounted, but after the device probes.
> 
> It also affected my build machine (same source revision) the same way.
> 
> The most recent successful head built & booted on the machine was:
> 
> FreeBSD g1-252.catwhisker.org 11.0-CURRENT FreeBSD 11.0-CURRENT #252  r291159M/291159:1100090: Sun Nov 22 05:16:34 PST 2015     root_at_localhost:/common/S4/obj/usr/src/sys/CANARY  amd64
> 
> 
> I was able to capture a crash dump (by issuing "panic" at the "db>
> " prompt); I've copied the vmcore.8 & core.txt.8 to
> <http://www.catwhisker.org/~david/FreeBSD/head/>.  Here's an excerpt from
> the core.txt.8:
> 
> ...
> SMP: passed TSC synchronization test
> TSC timecounter discards lower 1 bit(s)
> Timecounter "TSC-low" frequency 1396804168 Hz quality 1000
> WARNING: WITNESS option enabled, expect reduced performance.
> WARNING: DIAGNOSTIC option enabled, expect reduced performance.
> Expensive timeout(9) function: 0xffffffff808830d0(0xffffffff81761898) 0.004704835 s
> battery0: battery initialization done, tried 1 times
> GEOM: new disk cd0
> GEOM_PART: partition 1 on (diskid/DISK-W200TLZD, MBR) is not aligned on 4096 bytes
> GEOM_PART: partition 2 on (diskid/DISK-W200TLZD, MBR) is not aligned on 4096 bytes
> GEOM_PART: partition 3 on (diskid/DISK-W200TLZD, MBR) is not aligned on 4096 bytes
> start_init: trying /sbin/init
> 
> 
> Fatal trap 9: general protection fault while in kernel mode
> cpuid = 6; apic id = 06
> instruction pointer	= 0x20:0xffffffff809b049e
> stack pointer	        = 0x28:0xfffffe06015a2a70
> frame pointer	        = 0x28:0xfffffe06015a2ab0
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= interrupt enabled, resume, IOPL = 0
> current process		= 1 (init)
> Uptime: 3s
> ....
> 
> I'm happy to test possible fixes.

The source line which paniced is kern_fork.c:1025, according to the kgdb
backtrace.  The corresponding fragment is
        if (p->p_sysent->sv_schedtail != NULL)
                (p->p_sysent->sv_schedtail)(td);
The revision 291171 changed layout of the dereferenced structure
sysentvec. Was your kernel build clean, or did you used -DNO_CLEAN or
similar option ? If yes, remove the kernel build directory and start
from scratch.
Received on Mon Nov 23 2015 - 12:33:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC