Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Oct 2002 22:50:31 -0400
From:      Don Bowman <don@sandvine.com>
To:        "'freebsd-stable@freebsd.org'" <freebsd-stable@freebsd.org>, "'freebsd-net@freebsd.org'" <freebsd-net@freebsd.org>
Subject:   panic with ipfw / dummynet  in 4.7 STABLE
Message-ID:  <FE045D4D9F7AED4CBFF1B3B813C8533701022D2D@mail.sandvine.com>

next in thread | raw e-mail | index | archive | help
Take a 4.7 image. Using if_em (if it matters). Turn on
bridging (em0, em2), add these ipfw rules:

ipfw add 305 prob 0.01 drop MAC any 00:04:76:f3:2d:0a setup 
ipfw add 310 prob 0.01 reject MAC any 00:04:76:f3:2d:0a setup 
ipfw add 320 prob 0.01 unreach host MAC any 00:04:76:f3:2d:0a setup 
ipfw add 325 prob 0.01 unreach port MAC any 00:04:76:f3:2d:0a setup 
ipfw add pipe 1 config delay 90 plr 0.0001
ipfw add pipe 2 config delay 150 plr 0.0005
ipfw add 340 prob 0.5 pipe 1 ip from any to any 
ipfw add 345 prob 0.5 pipe 2 ip from any to any 

The system panics almost immediately (~1s). The panic and
trace is below. Its doubtful much traffic was present on
the em0 or em2 interfaces so this probably happened on the first
packet.

I'll turn on -g in the kernel (I thought for sure it was,
but seems no...) and re-run.

This is with -DIPFW2 on.

So I'm doing:

# kldload if_em
# sysctl net.link.ether.bridge_cfg="em0 em2"
# sysctl net.link.ether.bridge=1

(after the machine has booted).
Then I run the script above to add the ipfw rules, and it tips over.

bash-2.05a# uname -a
FreeBSD TPC-E1-34 4.7-STABLE FreeBSD 4.7-STABLE #7: Tue Oct 22 22:07:55 EDT
2002     don@bsd-make.sandvine.com:/usr/obj/usr/src/sys/TPC  i386

Machine is a 2x XEON 2.0 GHz w/ Intel 82544 on the motherboard,
and an Intel 82546EB dual GE card in a PCI slot. It is SMP enabled.

SMP 4 cpus
IdlePTD at phsyical address 0x00430000
initial pcb at physical address 0x00369780
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
mp_lock = 00000002; cpuid = 0; lapic.id = 00000000
fault virtual address   = 0x40000007
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc0204565
stack pointer           = 0x10:0xff807eb4
frame pointer           = 0x10:0xff807edc
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         = Idle
interrupt mask          = net  <- SMP: XXX
trap number             = 12
panic: page fault
mp_lock = 00000002; cpuid = 0; lapic.id = 00000000
boot() called on cpu#0

syncing disks... 

Fatal trap 12: page fault while in kernel mode
mp_lock = 00000003; cpuid = 0; lapic.id = 00000000
fault virtual address   = 0x30
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc0266e11
stack pointer           = 0x10:0xff807cc4
frame pointer           = 0x10:0xff807ccc
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         = Idle
interrupt mask          = net bio  <- SMP: XXX
trap number             = 12
panic: page fault
mp_lock = 00000003; cpuid = 0; lapic.id = 00000000
boot() called on cpu#0
Uptime: 3m6s

#0  0xc01b19b2 in dumpsys ()
#1  0xc01b1783 in boot ()
#2  0xc01b1bdc in poweroff_wait ()
#3  0xc02cb508 in trap_fatal ()
#4  0xc02cb199 in trap_pfault ()
#5  0xc02cad37 in trap ()
#6  0xc0266e11 in acquire_lock ()
#7  0xc026af24 in softdep_update_inodeblock ()
#8  0xc0265f45 in ffs_update ()
#9  0xc026e357 in ffs_sync ()
#10 0xc01e29bf in sync ()
#11 0xc01b151e in boot ()
#12 0xc01b1bdc in poweroff_wait ()
#13 0xc02cb508 in trap_fatal ()
#14 0xc02cb199 in trap_pfault ()
#15 0xc02cad37 in trap ()
#16 0xc0204565 in dummynet_io ()
#17 0xc020991c in ip_input ()
#18 0xc0209ec7 in ipintr ()
#19 0xc02bca91 in swi_net_next ()

Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 4.7-STABLE #7: Tue Oct 22 22:07:55 EDT 2002
    don@bsd-make.sandvine.com:/usr/obj/usr/src/sys/TPC
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium 4 (1996.60-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf24  Stepping = 4
 
Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA
,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,<b28>,ACC>
real memory  = 1073217536 (1048064K bytes)
avail memory = 1039532032 (1015168K bytes)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
Programming 24 pins in IOAPIC #1
Programming 24 pins in IOAPIC #2
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  0, version: 0x00050014, at 0xfee00000
 cpu1 (AP):  apic id:  6, version: 0x00050014, at 0xfee00000
 cpu2 (AP):  apic id:  1, version: 0x00050014, at 0xfee00000
 cpu3 (AP):  apic id:  7, version: 0x00050014, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00178020, at 0xfec00000
 io1 (APIC): apic id:  3, version: 0x00178020, at 0xfec80000
 io2 (APIC): apic id:  4, version: 0x00178020, at 0xfec80400
Preloaded elf kernel "kernel" at 0xc0411000.
Preloaded elf module "if_fxp.ko" at 0xc041109c.
Preloaded elf module "miibus.ko" at 0xc041113c.
netsmb_dev: loaded
Pentium Pro MTRR support enabled
md0: Malloc disk
Using $PIR table, 24 entries at 0xc00fde40
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
IOAPIC #0 intpin 16 -> irq 2
IOAPIC #0 intpin 19 -> irq 10
IOAPIC #0 intpin 18 -> irq 11
pci0: <PCI bus> on pcib0
pci0: <unknown card> (vendor=0x8086, dev=0x2541) at 0.1
pcib1: <PCI to PCI bridge (vendor=8086 device=2543)> at device 2.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <unknown card> (vendor=0x8086, dev=0x1461) at 28.0
pcib2: <PCI to PCI bridge (vendor=8086 device=1460)> at device 29.0 on pci1
IOAPIC #2 intpin 0 -> irq 16
IOAPIC #2 intpin 1 -> irq 17
pci2: <PCI bus> on pcib2
pci2: <unknown card> (vendor=0x8086, dev=0x1010) at 1.0 irq 16
pci2: <unknown card> (vendor=0x8086, dev=0x1010) at 1.1 irq 17
pci1: <unknown card> (vendor=0x8086, dev=0x1461) at 30.0
pcib3: <PCI to PCI bridge (vendor=8086 device=1460)> at device 31.0 on pci1
IOAPIC #1 intpin 4 -> irq 18
IOAPIC #1 intpin 5 -> irq 19
IOAPIC #1 intpin 7 -> irq 20
pci3: <PCI bus> on pcib3
ahc0: <Adaptec aic7899 Ultra160 SCSI adapter> port 0x4000-0x40ff mem
0xfc340000-0xfc340fff irq 18 at device 2.0 on pci3
aic7899: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
ahc1: <Adaptec aic7899 Ultra160 SCSI adapter> port 0x4400-0x44ff mem
0xfc341000-0xfc341fff irq 19 at device 2.1 on pci3
aic7899: Ultra160 Wide Channel B, SCSI Id=15, 32/253 SCBs
pci3: <unknown card> (vendor=0x8086, dev=0x100d) at 4.0 irq 20
uhci0: <Intel 82801CA/CAM (ICH3) USB controller USB-A> port 0x2000-0x201f
irq 2 at device 29.0 on pci0
usb0: <Intel 82801CA/CAM (ICH3) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <Intel 82801CA/CAM (ICH3) USB controller USB-B> port 0x2020-0x203f
irq 10 at device 29.1 on pci0
usb1: <Intel 82801CA/CAM (ICH3) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <Intel 82801CA/CAM (ICH3) USB controller USB-C> port 0x2040-0x205f
irq 11 at device 29.2 on pci0
usb2: <Intel 82801CA/CAM (ICH3) USB controller USB-C> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
pcib4: <Intel 82801BA/BAM (ICH2) Hub to PCI bridge> at device 30.0 on pci0
IOAPIC #0 intpin 17 -> irq 21
pci4: <PCI bus> on pcib4
pci4: <ATI Mach64-GR graphics accelerator> at 1.0 irq 2
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x5400-0x543f mem
0xfc420000-0xfc43ffff,0xfc401000-0xfc401fff irq 21 at device 2.0 on pci4
fxp0: Ethernet address 00:30:48:12:36:07
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isab0: <PCI to ISA bridge (vendor=8086 device=2480)> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH3 ATA100 controller> port
0x2060-0x206f,0x374-0x377,0x170-0x177,0x3f4-0x3f7,0x1f0-0x1f7 mem
0xfc000000-0xfc0003ff irq 0 at device 31.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ichsmb0: <Intel 82801CA (ICH3) SMBus controller> port 0x1100-0x111f irq 0 at
device 31.3 on pci0
pci_cfgintr_search: linked (61) to configured irq 21 at 4:2:0
pci_cfgintr: 0:31 INTB routed to irq 21
smbus0: <System Management Bus> on ichsmb0
smb0: <SMBus general purpose I/O> on smbus0
orm0: <Option ROMs> at iomem
0xc0000-0xc7fff,0xc8000-0xc8fff,0xce800-0xcf7ff,0xcf800-0xd07ff,0xdc000-0xdf
fff,0xe0000-0xe3fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
APIC_IO: Testing 8254 interrupt delivery
APIC_IO: routing 8254 via IOAPIC #0 intpin 2
BRIDGE 020214 loaded
DUMMYNET initialized (011031)
ipfw2 initialized, divert enabled, rule-based forwarding enabled, default to
accept, logging disabled
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #1 Launched!
acd0: CDROM <MATSHITA CR-177> at ata1-master PIO4
Waiting 2 seconds for SCSI devices to settle
pass1 at ahc0 bus 0 target 6 lun 0
pass1: <SUPER GEM318 0> Fixed Processor SCSI-2 device 
pass1: 3.300MB/s transfers
da0 at ahc0 bus 0 target 0 lun 0
da0: <SEAGATE ST318452LC 0004> Fixed Direct Access SCSI-3 device 
da0: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing
Enabled
da0: 17501MB (35843670 512 byte sectors: 255H 63S/T 2231C)
Mounting root from ufs:/dev/da0s1a
da0: raw partition size != slice size
da0: start 63, end 1638629, size 1638567
da0c: start 63, end 1558304, size 1558242
WARNING: / was not properly dismounted
bash-2.05a# 

--don (don@sandvine.com www.sandvine.com)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C8533701022D2D>