Kernel panic in pppoe_findsession (ng_pppoe.c)

nickolasbug at gmail.com nickolasbug at gmail.com
Wed Jun 30 12:57:37 UTC 2010


Hello!

Yestarday I've got 4 kernel panics with the same problem - page fault
while in kernel mode, in netgraph pppoe module.
I've defined, that fault produce pppoe_findsession() function - see below.

Here is the contents of /var/crash/info.5 file:

Dump header from device /dev/gpt/swap
  Architecture: amd64
  Architecture Version: 2
  Dump Length: 1490821120B (1421 MB)
  Blocksize: 512
  Dumptime: Tue Jun 29 14:35:53 2010
  Hostname: cloud
  Magic: FreeBSD Kernel Dump
  Version String: FreeBSD 8.1-PRERELEASE #18: Sun Jun  6 00:32:09 EEST 2010
    root at cloud:/usr/obj/usr/src/sys/CLOUD
  Panic String: page fault
  Dump Parity: 4273635620
  Bounds: 5
  Dump Status: good


I can give more information, if you need (core.txt.5 file, kernel
config file, etc).


And here is kgdb log:


Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0x8064ed050
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff803c2869
stack pointer           = 0x28:0xffffff803bee7880
frame pointer           = 0x28:0xffffff803bee78c0
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         = 0 (nfe0 taskq)
trap number             = 12
panic: page fault
cpuid = 1
Uptime: 19d12h24m25s
Physical memory: 2024 MB
Dumping 1421 MB: 1406 1390 1374 1358 1342 1326 1310 1294 1278 1262
1246 1230 1214 1198 1182 1166 1150 1134 1118 1102 1086 1070 1054 1038
1022 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766
750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494
478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 222
206 190 174 158 142 126 110 94 78 62 46 30 14

Reading symbols from /boot/kernel/vesa.ko...Reading symbols from
/boot/kernel/vesa.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/vesa.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/sound.ko...Reading symbols from
/boot/kernel/sound.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from
/boot/kernel/snd_hda.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/snd_hda.ko
Reading symbols from /boot/kernel/acpi_asus.ko...Reading symbols from
/boot/kernel/acpi_asus.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi_asus.ko
Reading symbols from /boot/kernel/acpi_aiboost.ko...Reading symbols
from /boot/kernel/acpi_aiboost.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi_aiboost.ko
Reading symbols from /boot/modules/nvidia.ko...done.
Loaded symbols for /boot/modules/nvidia.ko
Reading symbols from /boot/kernel/procfs.ko...Reading symbols from
/boot/kernel/procfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/procfs.ko
Reading symbols from /boot/kernel/pseudofs.ko...Reading symbols from
/boot/kernel/pseudofs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/pseudofs.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from
/boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
Reading symbols from /boot/kernel/linsysfs.ko...Reading symbols from
/boot/kernel/linsysfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linsysfs.ko
Reading symbols from /boot/kernel/blank_saver.ko...Reading symbols
from /boot/kernel/blank_saver.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/blank_saver.ko
Reading symbols from /usr/local/modules/rtc.ko...done.
Loaded symbols for /usr/local/modules/rtc.ko
Reading symbols from /boot/kernel/if_gif.ko...Reading symbols from
/boot/kernel/if_gif.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/if_gif.ko
#0  doadump () at pcpu.h:223
223             __asm __volatile("movq %%gs:0,%0" : "=r" (td));
(kgdb) list *0xffffffff803c2869
0xffffffff803c2869 is in pppoe_findsession
(/usr/src/sys/netgraph/ng_pppoe.c:567).
562             uint16_t        hash = SESSHASH(session);
563             sessp           sp = NULL;
564
565             mtx_lock(&privp->sesshash[hash].mtx);
566             LIST_FOREACH(sp, &privp->sesshash[hash].head, sessions) {
567                     if (sp->Session_ID == session &&
568                         bcmp(sp->pkt_hdr.eh.ether_dhost,
569                          wh->eh.ether_shost, ETHER_ADDR_LEN) == 0) {
570                             break;
571                     }
(kgdb) backtrace
#0  doadump () at pcpu.h:223
#1  0xffffffff802e7cd9 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:416
#2  0xffffffff802e810c in panic (fmt=0xffffffff80581c64 "%s") at
/usr/src/sys/kern/kern_shutdown.c:590
#3  0xffffffff8051dfd8 in trap_fatal (frame=0xffffff0002415ba0,
eva=Variable "eva" is not available.
) at /usr/src/sys/amd64/amd64/trap.c:777
#4  0xffffffff8051e3a4 in trap_pfault (frame=0xffffff803bee77d0,
usermode=0) at /usr/src/sys/amd64/amd64/trap.c:693
#5  0xffffffff8051ebf2 in trap (frame=0xffffff803bee77d0) at
/usr/src/sys/amd64/amd64/trap.c:451
#6  0xffffffff805047f3 in calltrap () at
/usr/src/sys/amd64/amd64/exception.S:223
#7  0xffffffff803c2869 in pppoe_findsession (privp=0xffffff8000838000,
wh=Variable "wh" is not available.
) at /usr/src/sys/netgraph/ng_pppoe.c:566
#8  0xffffffff803c3094 in ng_pppoe_rcvdata_ether (hook=Variable "hook"
is not available.
) at /usr/src/sys/netgraph/ng_pppoe.c:1613
#9  0xffffffff803bd5b3 in ng_apply_item (node=0xffffff0002c5e600,
item=0xffffff0002c67a80, rw=0) at /usr/src/sys/netgraph/ng_base.c:2336
#10 0xffffffff803bc62d in ng_snd_item (item=Variable "item" is not available.
) at /usr/src/sys/netgraph/ng_base.c:2253
#11 0xffffffff803a0917 in ether_demux (ifp=0xffffff0002941000,
m=0xffffff0029860a00) at /usr/src/sys/net/if_ethersubr.c:918
#12 0xffffffff803a0d73 in ether_input (ifp=0xffffff0002941000,
m=0xffffff0029860a00) at /usr/src/sys/net/if_ethersubr.c:760
#13 0xffffffff803a085f in ether_demux (ifp=0xffffff0002940800,
m=0xffffff0029860a00) at /usr/src/sys/net/if_ethersubr.c:810
#14 0xffffffff803a0d73 in ether_input (ifp=0xffffff0002940800,
m=0xffffff0029860a00) at /usr/src/sys/net/if_ethersubr.c:760
#15 0xffffffff80538377 in nfe_int_task (arg=Variable "arg" is not available.
) at /usr/src/sys/dev/nfe/if_nfe.c:2119
#16 0xffffffff80323852 in taskqueue_run (queue=0xffffff00026f3d00) at
/usr/src/sys/kern/subr_taskqueue.c:239
#17 0xffffffff80323ac6 in taskqueue_thread_loop (arg=Variable "arg" is
not available.
) at /usr/src/sys/kern/subr_taskqueue.c:360
#18 0xffffffff802bf397 in fork_exit (callout=0xffffffff80323a80
<taskqueue_thread_loop>, arg=0xffffff80003c61b8,
frame=0xffffff803bee7c80) at /usr/src/sys/kern/kern_fork.c:844
#19 0xffffffff80504cce in fork_trampoline () at
/usr/src/sys/amd64/amd64/exception.S:562
#20 0x0000000000000000 in ?? ()
#21 0x0000000000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x0000000000000000 in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x0000000000000000 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000000000000 in ?? ()
#28 0x0000000000000000 in ?? ()
#29 0x0000000000000000 in ?? ()
#30 0x0000000000000000 in ?? ()
#31 0x0000000000000000 in ?? ()
#32 0x0000000000000000 in ?? ()
#33 0x0000000000000000 in ?? ()
#34 0x0000000000000000 in ?? ()
#35 0x0000000000000000 in ?? ()
#36 0x0000000000000000 in ?? ()
#37 0x0000000000000000 in ?? ()
#38 0x0000000000000000 in ?? ()
#39 0x0000000000000000 in ?? ()
#40 0x0000000000000000 in ?? ()
#41 0x0000000000000000 in ?? ()
#42 0x0000000000000000 in ?? ()
#43 0x0000000000000000 in ?? ()
#44 0x000000000173d000 in ?? ()
#45 0x0000000000000000 in ?? ()
#46 0xffffff0002415ba0 in ?? ()
#47 0xffffffff80764900 in affinity ()
#48 0xffffff00022fe7c0 in ?? ()
#49 0xffffff803bee7440 in ?? ()
#50 0xffffff803bee73f8 in ?? ()
#51 0xffffff0002415ba0 in ?? ()
#52 0xffffffff8030b7e3 in sched_switch (td=0xffffff80003c61b8,
newtd=0xffffffff80323a80, flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1844
Previous frame inner to this frame (corrupt stack?)


More information about the freebsd-stable mailing list