Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Jun 2002 14:36:51 -0700
From:      Arun Sharma <arun@sharma-home.net>
To:        freebsd-current@freebsd.org
Cc:        freebsd-smp@freebsd.org
Subject:   Page faults in kernel mode
Message-ID:  <20020609213651.GA5956@sharma-home.net>

next in thread | raw e-mail | index | archive | help
Running on a dual celeron box.

CPU: Pentium II/Pentium II Xeon/Celeron (367.50-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x665  Stepping = 5
  Features=0x183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,C>
real memory  = 201326592 (196608K bytes)
avail memory = 191365120 (186880K bytes)

FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): apic id:  0, version: 0x00040011, at 0xfee00000
 cpu1 (AP):  apic id:  1, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00170011, at 0xfec00000

1. While running background fsck alone:

fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address   = 0xc9d65e90
fault code              = supervisor write, page not present
instruction pointer     = 0x8:0xc01aee6c
stack pointer           = 0x10:0xcaafe9a4
frame pointer           = 0x10:0xcaafe9b0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 155 (syslogd)
kernel: type 12 trap, code=0
Stopped at      _mtx_lock_flags+0x3e:   lock cmpxchgl   %edx,0x1c(%ebx)
db> trace
_mtx_lock_flags(c9d65e74,0,c02f31e0,6da,cabb5034) at
_mtx_lock_flags+0x3e
vref(c9d65e00,cabb5034,0,c02f2f40,98) at vref+0x1d
namei(caafec10) at namei+0x17d
vn_open_cred(caafec10,caafeb64,1a4,c98fe100,caafecec) at
vn_open_cred+0x238
vn_open(caafec10,caafeb64,1a4,c01aeef3,cac6dac8) at vn_open+0x1b
open(caadea54,caafed14,3,59,296) at open+0x155
syscall(2f,bfbf002f,bfbf002f,4,2811afa0) at syscall+0x1db
syscall_with_err_pushed() at syscall_with_err_pushed+0x1b
--- syscall (5, FreeBSD ELF, open), eip = 0x280a8c73, esp = 0xbfbfe78c, ebp = 0-

2. background fsck + two processes running find / 

panic: blockable sleep lock (sleep mutex) process lock @ /usr.current/src/sys/i1
cpuid = 0; lapic.id = 00000000
Debugger("panic")

Couldn't get any more information on the exact filename from ddb.

3. Running two copies of find / alone:

Debugger(c02ea41a) at Debugger+0x46
panic(c02edc20,c02e9380,c02e7400,c030e420,2c7) at panic+0xd1
witness_lock(cb081818,8,c030e420,2c7,1) at witness_lock+0x7f
_mtx_lock_flags(cb081818,0,c030e420,2c7,cb081738) at
_mtx_lock_flags+0x6a
trap_pfault(cb0bb8fc,0,64) at trap_pfault+0x92
trap(c02e0018,cb0b0010,c01a0010,c9d65b74,6a9) at trap+0x32b
calltrap() at calltrap+0x5
--- trap 0xc, eip = 0xc01af1bf, esp = 0xcb0bb93c, ebp = 0xcb0bb950 ---
_mtx_lock_sleep(c9d65b74,0,c02f31e0,6a9) at _mtx_lock_sleep+0x121
_mtx_lock_flags(c9d65b74,0,c02f31e0,6a9) at _mtx_lock_flags+0x58
vget(c9d65b00,2,cb081738,0,cb081738) at vget+0x28
vfs_cache_lookup(cb0bba74,cb0bbaa0,c01efc94,cb0bba74,cb081738) at
vfs_cache_loo9
ufs_vnoperate(cb0bba74) at ufs_vnoperate+0x13
lookup(cb0bbc90,cb081738,cada5400,0,cb081738) at lookup+0x2b2
namei(cb0bbc90,0,cb0bbb20,c01af023,c0327ea0) at namei+0x1df
execve(cb081738,cb0bbd14,3,1,297) at execve+0x19a
syscall(2f,2f,2f,812e0b6,812e050) at syscall+0x1db
syscall_with_err_pushed() at syscall_with_err_pushed+0x1b
--- syscall (59, FreeBSD ELF, execve), eip = 0x80a6e80, esp = 0xbfbff9c8, ebp =-

This sounds like a variant of (1).

4. More page faults in kernel mode:

Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address   = 0xc9d65014
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc01f32d3
stack pointer           = 0x10:0xc9d54c68
frame pointer           = 0x10:0xc9d54c9c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 7 (syncer)

Also, in ddb, show map /f prints a never ending list of map objects. Is
that normal or is my list corrupted somehow ?

	-Arun

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?20020609213651.GA5956>