🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by gumis Fri, 15 May 2009 10:35
kernel panic + dummynet 7.2R
#20914
Author: gumis
Date: Fri, 15 May 2009 10:35
146 lines
7333 bytes
Witam,
Mamy problem z routerem oparym na FreeBSD. Przy przeładowywaniu firewalla 
notorycznie występuje kernel panic + restart routera. Błąd ten występuje 
tylko w przypadku jądra SMP, przy włączonym tylko jednym rdzeniu router jest 
stabilny jak skała.Czekaliśmy na 7.2 z nadzieją, że coś się poprawi. 
Niestety dalej to samo co we wcześniejszych wersjach (od 6.x)
Przez router leci dosyć sporo ruchu, w szczycie prawie 400mbit in i około 
350mbit out. W tym momencie panic jest powtarzalny przynajmniej w 90% 
przeładowań. Jak ruch jest mniejszy, powiedzmy 100in i out to raczej się nic 
nie dzieje (np w nocy lub podczas restartu routera). Do cięcia ruchu 
wykorzystujemy ficzer tablearg w postaci:
ipfw add pipe tablearg ip from table(101) to any
ipfw add pipe tablearg ip from any to table(100)
ipfw add pipe tablearg ip from table(103) to any
ipfw add pipe tablearg ip from any to table(102)

oraz wpisy w tabelach (ok 9000 wpisów)
/sbin/ipfw pipe 15000 config bw 20480Kbit/s
/sbin/ipfw pipe 15001 config bw 20480Kbit/s
/sbin/ipfw table 100 add xx.xx.xx.xx 15000
/sbin/ipfw table 101 add xx.xx.xx.xx 15001
/sbin/ipfw pipe 15002 config bw 3072Kbit/s
/sbin/ipfw pipe 15003 config bw 640Kbit/s
/sbin/ipfw table 102 add xx.xx.xx.xx 15002
/sbin/ipfw table 103 add xx.xx.xx.xx 15003
/sbin/ipfw pipe 15004 config bw 20480Kbit/s
/sbin/ipfw pipe 15005 config bw 20480Kbit/s

Na 99% panic występuje podczas ładowania tych tabel i tylko przy jądrze smp.
SMP jest dla nas o tyle istotne, że przy jednym włączonym jądrze procesora 
użycie procesora w szczycie jest 100%. Przy włączonym SMP router się nudzi.
Sprzęt wykluczyliśmy w 100%, był serwer hp proliant z xeonami, były 2 
składaki z mocnymi C2D i za każdym razem to samo.

FreeBSD 7.2-RELEASE #0: Thu May 14 13:35:28 CEST 2009
CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (3000.01-MHz 686-class 
CPU)
real memory  = 2146304000 (2046 MB)
avail memory = 2090934272 (1994 MB)
em0: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xa000-0xa01f mem 
0xe8020000-0xe803ffff,0xe8000000-0xe801ffff irq 12 at device 0.0 on pci3
em1: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xb000-0xb01f mem 
0xea020000-0xea03ffff,0xea000000-0xea01ffff irq 10 at device 0.0 on pci4

Kernel Generic + :
#cpu            I486_CPU
#cpu            I586_CPU

options         HZ=1000
device          atapicam
options         DEVICE_POLLING
options         DUMMYNET
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_DEFAULT_TO_ACCEPT

device          vlan
options         NULLFS
options         UNIONFS
options         GEOM_AES                # Don't use, use GEOM_BDE
options         GEOM_BDE                # Disk encryption.
options         GEOM_BSD                # BSD disklabels
options         GEOM_CONCAT             # Disk concatenation.
options         GEOM_FOX                # Redundant path mitigation
options         GEOM_GATE               # Userland services.
options         GEOM_PART_GPT           # GPT partitioning
options         GEOM_LABEL              # Providers labelization.
options         GEOM_MBR                # DOS/MBR partitioning
options         GEOM_MIRROR             # Disk mirroring.
options         GEOM_NOP                # Test class.
options         GEOM_RAID3              # RAID3 functionality.
options         GEOM_STRIPE             # Disk striping.
options         GEOM_VOL                # Volume names from UFS superblock

Dump z panica:
Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0xf
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc0902ac6
stack pointer           = 0x28:0xe5961774
frame pointer           = 0x28:0xe5961aa4
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         = 46 (dummynet)
trap number             = 12
panic: page fault
cpuid = 1
Uptime: 4m32s
Physical memory: 2034 MB
Dumping 108 MB: 93 77 61 45 29 13

Reading symbols from /boot/kernel/acpi.ko...Reading symbols from 
/boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/pf.ko...Reading symbols from 
/boot/kernel/pf.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/pf.ko
#0  doadump () at pcpu.h:196
196             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt
#0  doadump () at pcpu.h:196
#1  0xc0817ee7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2  0xc08181b9 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3  0xc0b252ac in trap_fatal (frame=0xe5961734, eva=15) at 
/usr/src/sys/i386/i386/trap.c:939
#4  0xc0b25510 in trap_pfault (frame=0xe5961734, usermode=0, eva=15) at 
/usr/src/sys/i386/i386/trap.c:852
#5  0xc0b25e92 in trap (frame=0xe5961734) at 
/usr/src/sys/i386/i386/trap.c:530
#6  0xc0b0afab in calltrap () at /usr/src/sys/i386/i386/exception.s:159
#7  0xc0902ac6 in ipfw_chk (args=0xe5961abc) at 
/usr/src/sys/netinet/ip_fw2.c:2516
#8  0xc0906138 in ipfw_check_in (arg=0x0, m0=0xe5961bc0, ifp=0xc5905000, 
dir=1, inp=0x0) at /usr/src/sys/netinet/ip_fw_pfil.c:125
#9  0xc08c3fd8 in pfil_run_hooks (ph=0xc0d062a0, mp=0xe5961c18, 
ifp=0xc5905000, dir=1, inp=0x0) at /usr/src/sys/net/pfil.c:78
#10 0xc0908ee1 in ip_input (m=0xc6daa400) at 
/usr/src/sys/netinet/ip_input.c:416
#11 0xc08c2755 in netisr_dispatch (num=2, m=0xc6daa400) at 
/usr/src/sys/net/netisr.c:185
#12 0xc08fa862 in dummynet_send (m=0xc6daa400) at 
/usr/src/sys/netinet/ip_dummynet.c:901
#13 0xc08fbe36 in dummynet_task (context=0x0, pending=1) at 
/usr/src/sys/netinet/ip_dummynet.c:877
#14 0xc084d175 in taskqueue_run (queue=0xc57b6380) at 
/usr/src/sys/kern/subr_taskqueue.c:282
#15 0xc084d388 in taskqueue_thread_loop (arg=0xc0d05aa8) at 
/usr/src/sys/kern/subr_taskqueue.c:401
#16 0xc07f18d9 in fork_exit (callout=0xc084d2c0 <taskqueue_thread_loop>, 
arg=0xc0d05aa8, frame=0xe5961d38)
    at /usr/src/sys/kern/kern_fork.c:810
#17 0xc0b0b020 in fork_trampoline () at 
/usr/src/sys/i386/i386/exception.s:264
(kgdb)

Nie jesteśmy developerami bsd i w/w dump nam za dużo nie mówi. Google 
wyrzuca podobne problemy ale rozwiązania brak.
Jakieś pomysły ?

Tomasz Gumułka
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads