panic in get_next_dirent

Andriy Gapon avg at icyb.net.ua
Thu Sep 2 10:01:24 UTC 2010


Brian,

after I upgraded my kernel from beginning of July version to end of August
version I started to get panics in get_next_dirent under parallel FS load, like
e.g. during buildworld with -jN.

Is this something that might have been broken by accident and then fixed later?
I've seen that you were making some changes in the related code while working on
your NFS problem.

I am upgrading kernel to the latest version now to see if that helps.

Here is panic information:

Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0xffffff80151b8abb
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff803f6f54
stack pointer           = 0x28:0xffffff8124353580
frame pointer           = 0x28:0xffffff8124353650
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         = 12295 (sh)
trap number             = 12
panic: page fault
cpuid = 1
KDB: stack backtrace:
db_trace_self_wrapper() at 0xffffffff801b84ba = db_trace_self_wrapper+0x2a
kdb_backtrace() at 0xffffffff803a2c62 = kdb_backtrace+0x32
panic() at 0xffffffff8036cb54 = panic+0x1b4
trap_fatal() at 0xffffffff805471ad = trap_fatal+0x39d
trap_pfault() at 0xffffffff805473bd = trap_pfault+0x1ed
trap() at 0xffffffff805479a4 = trap+0x484
calltrap() at 0xffffffff80531428 = calltrap+0x8
--- trap 0xc, rip = 0xffffffff803f6f54, rsp = 0xffffff8124353580, rbp =
0xffffff8124353650 ---
get_next_dirent() at 0xffffffff803f6f54 = get_next_dirent+0x164
vop_stdvptocnp() at 0xffffffff803f749a = vop_stdvptocnp+0x31a
VOP_VPTOCNP_APV() at 0xffffffff805a3af8 = VOP_VPTOCNP_APV+0xe8
vn_vptocnp_locked() at 0xffffffff803f339c = vn_vptocnp_locked+0x1fc
vn_fullpath1() at 0xffffffff803f36b8 = vn_fullpath1+0x1e8
kern___getcwd() at 0xffffffff803f3b4a = kern___getcwd+0xda
__getcwd() at 0xffffffff803f3cd4 = __getcwd+0x14
syscallenter() at 0xffffffff803b088e = syscallenter+0x26e
syscall() at 0xffffffff80547432 = syscall+0x42
Xfast_syscall() at 0xffffffff80531702 = Xfast_syscall+0xe2
--- syscall (326, FreeBSD ELF64, __getcwd), rip = 0x800939cfc, rsp =
0x7fffffffe0b8, rbp = 0x800c2a208 ---

-- 
Andriy Gapon


More information about the freebsd-current mailing list