Re: CURRENT panics sometimes

From: Maxim Maximov <mcsi_at_mcsi.pp.ru>
Date: Thu, 10 Nov 2005 22:02:10 +0300
Bill Paul wrote:
>>Hi.
>>
>>	1 boot of 3 I got similar panics in softclock().
>>
>>kernel trap 12 with interrupts disabled
>>
>>
>>Fatal trap 12: page fault while in kernel mode
>>cpuid = 0; apic id = 00
>>fault virtual address   = 0x218
>>fault code              = supervisor read, page not present
>>instruction pointer     = 0x20:0xc06aa6ae
>>stack pointer           = 0x28:0xd4710cac
>>frame pointer           = 0x28:0xd4710cd4
>>code segment            = base 0x0, limit 0xfffff, type 0x1b
>>                         = DPL 0, pres 1, def32 1, gran 1
>>processor eflags        = resume, IOPL = 0
>>current process         = 13 (swi4: clock sio)
>>
>>	The trace is:
>>
>>softclock(0) ... +0x86
>>ithread_execute_handlers
>>ithread_loop
>>fork_exit
>>form_trampoline
>>
>>	softclock+0x86 is here (marked with an arrow)
>>
>>		/*
>>		 * softticks may be modified by hard clock, so cache
>>		 * it while we work on a given bucket.
>>		 */
>>		curticks = softticks;
>>		bucket = &callwheel[curticks & callwheelmask];
>>		c = TAILQ_FIRST(bucket);
>>		while (c) {
>>			depth++;
>>--->			if (c->c_time != curticks) {
>>				c = TAILQ_NEXT(c, c_links.tqe);
>>				++steps;
>>
>>	Debugging shows that 'c' has the value of 0x210. Which is incorrect for 
>>sure. 'c_time' has an offset of 0x8, giving us fault virtual address.
>>	I'm using NDIS. It seems, that panic happens on first packet NDIS tries 
>>to send. This is when 'ntpdate' is being run at boot stage.
>>	As I said, I can reproduce it by rebooting a few times. Can anyone give 
>>a clue where to look in DDB further to help to resolve this problem?
> 
> 
> If you want us to give you clues, you have to give _US_ clues.
> 
> For example, here are some of the things you didn't bother to say:
> 
> - _WHICH_ windows driver are you using with NDIS?

bcmwl5.sys

> - _WHAT_ wireless card do you have?

It presents itself as ASUS 802.11g Network Adapter. Based on Broadcom chip.

> - Complete dmesg output from your system (note: verbose boot is not
>   necessary, but _full_ output is necessary, i.e. don't remove things
>   you think are unimportant)

Here it is.

Copyright (c) 1992-2005 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 7.0-CURRENT #0: Tue Nov  8 20:52:36 MSK 2005
     mcsi_at_ultra.domain:/usr/obj/usr/src/sys/ULTRA
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (2992.52-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
 
Features=0xbfebfbff<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,HTT,TM,PBE>
   Features2=0x4400<CNTX-ID,<b14>>
   Logical CPUs per core: 2
real memory  = 536674304 (511 MB)
avail memory = 510435328 (486 MB)
ACPI APIC Table: <A M I  OEMAPIC >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
ioapic0 <Version 2.0> irqs 0-23 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <A M I OEMRSDT> on motherboard
acpi0: Power Button (fixed)
acpi_ec0: <Embedded Controller: GPE 0x1c> port 0x62,0x66 on acpi0
pci_link0: <ACPI PCI Link LNKA> irq 9 on acpi0
pci_link1: <ACPI PCI Link LNKB> irq 5 on acpi0
pci_link2: <ACPI PCI Link LNKC> irq 5 on acpi0
pci_link3: <ACPI PCI Link LNKD> irq 0 on acpi0
pci_link4: <ACPI PCI Link LNKE> irq 0 on acpi0
pci_link5: <ACPI PCI Link LNKF> irq 0 on acpi0
pci_link6: <ACPI PCI Link LNKG> irq 0 on acpi0
pci_link7: <ACPI PCI Link LNKH> irq 5 on acpi0
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: <ACPI CPU> on acpi0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
p4tcc1: <CPU Frequency Thermal Control> on cpu1
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82865 host to AGP bridge> mem 0xf8000000-0xfbffffff at 
device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
drm0: <ATI Radeon RV300 Mobility 9600 M10> port 0x9800-0x98ff mem 
0xe8000000-0xefffffff,0xfe9f0000-0xfe9fffff irq 16 at device 0.0 on pci1
info: [drm] AGP at 0xf8000000 64MB
info: [drm] Initialized radeon 1.16.0 20050311 on minor 0
uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0xe000-0xe01f 
irq 16 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801EB (ICH5) 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 82801EB (ICH5) USB controller USB-B> port 0xe400-0xe41f 
irq 19 at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <Intel 82801EB (ICH5) 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 82801EB (ICH5) USB controller USB-C> port 0xe800-0xe81f 
irq 18 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <Intel 82801EB (ICH5) 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
uhci3: <Intel 82801EB (ICH5) USB controller USB-D> port 0xec00-0xec1f 
irq 16 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <Intel 82801EB (ICH5) USB controller USB-D> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
ehci0: <Intel 82801EB/R (ICH5) USB 2.0 controller> mem 
0xfebffc00-0xfebfffff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb4: waiting for BIOS to give up control
usb4: timed out waiting for BIOS
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <Intel 82801EB/R (ICH5) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib2
skc0: <3Com 3C940 Gigabit Ethernet> port 0xa800-0xa8ff mem 
0xfeafc000-0xfeafffff irq 18 at device 0.0 on pci2
skc0: 3Com Gigabit LOM (3C940) rev. (0x1)
sk0: <Marvell Semiconductor, Inc. Yukon> on skc0
sk0: Ethernet address: 00:0e:a6:b9:f9:f8
miibus0: <MII bus> on sk0
e1000phy0: <Marvell 88E1000 Gigabit PHY> on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 
1000baseTX-FDX, auto
cbb0: <RF5C476 PCI-CardBus Bridge> irq 16 at device 1.0 on pci2
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb1: <RF5C476 PCI-CardBus Bridge> irq 17 at device 1.1 on pci2
cardbus1: <CardBus bus> on cbb1
pccard1: <16-bit PCCard bus> on cbb1
fwohci0: <Ricoh R5C552> mem 0xfeafb000-0xfeafb7ff irq 18 at device 1.2 
on pci2
fwohci0: OHCI version 1.0 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:e0:18:00:03:18:f3:bc
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:e0:18:18:f3:bc
fwe0: Ethernet address: 02:e0:18:18:f3:bc
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
pci2: <base peripheral> at device 1.3 (no driver attached)
pci2: <base peripheral> at device 1.4 (no driver attached)
ndis0: <ASUS 802.11g Network Adapter> mem 0xfeaf8000-0xfeaf9fff irq 17 
at device 2.0 on pci2
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 00:0e:a6:c2:00:e4
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH5 UDMA100 controller> port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
pcm0: <Intel ICH5 (82801EB)> port 0xd400-0xd4ff,0xd000-0xd03f mem 
0xfebff800-0xfebff9ff,0xfebff400-0xfebff4ff irq 17 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Avance Logic ALC650 AC97 Codec>
pci0: <simple comms, generic modem> at device 31.6 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Synaptics Touchpad, device ID 0
speaker0: <PC speaker> port 0x61 on acpi0
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on 
acpi0
sio0: type 16550A
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
sio1: <Generic IRDA-compatible device> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
fdc0: <floppy drive controller (FDE)> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 
on acpi0
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <ECP parallel printer port> port 0x378-0x37f,0x778-0x77f irq 7 on 
acpi0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
pmtimer0 on isa0
orm0: <ISA Option ROM> at iomem 0xc0000-0xcffff pnpid ORM0000 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ukbd0: vendor 0x0566 product 0x3002, rev 1.10/1.00, addr 2, iclass 3/1
kbd1 at ukbd0
uhid0: vendor 0x0566 product 0x3002, rev 1.10/1.00, addr 2, iclass 3/1
ums0: Logitech Optical USB Mouse, rev 2.00/3.40, addr 3, iclass 3/1
ums0: 3 buttons and Z dir.
Timecounters tick every 1.000 msec
acd0: DVDR <TOSHIBA DVD-ROM SD-R6112/1731> at ata0-master UDMA33
ad2: 57231MB <IC25N060ATMR04 0 MO3OAD4A> at ata1-master UDMA100
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ad2s3a
WARNING: attempt to net_add_domain(netgraph) after domainfinalize()
sk0: link state changed to DOWN
ndis0: link state changed to UP
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address	= 0x218
fault code		= supervisor read, page not present
instruction pointer	= 0x20:0xc06aa6ae
stack pointer	        = 0x28:0xd4710cac
frame pointer	        = 0x28:0xd4710cd4
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= resume, IOPL = 0
current process		= 13 (swi4: clock sio)

> - Did you add your NDIS driver to /boot/loader.conf, or are you loading
>   the driver after the system is running multiuser?

I'm loading it from /boot/loader.conf

> - If you are loading the driver via /boot/loader.conf, did you try
>   _not_ doing that, and loading it afterwards?

No, I didn't. Even if I will do that, why the problem isn't solid? Right 
now and most of the time I'm happy with this driver loaded at boot time.

> - What kind of system is this? Laptop? Desktop? Stone knives and bearskins?

It's laptop ASUS L5 Series.

> - Is it SMP or UP?

SMP.

> 
> When you provide this information, maybe you will get help.
> 
> NOTE: Windows NDIS drivers assume that by the time you intialize them,
> the entire OS is up and running, including scheduling and, if present,
> multiple CPUs. But in FreeBSD, the kernel is running in 'cold start'
> state when it probes/attaches devices, and not all of the scheduling
> mechanisms are available yet (for example, you can not msleep() while
> cold == 1). This means loading your driver via /boot/loader.conf is
> something of a hit-or-miss proposition: sometimes they don't work right,
> sometimes they do. To be really safe, you should load them _after_ the
> system has come up all the way.
> 
> Unfortunately, it's necessary to initialize the driver briefly in
> ndis_attach() in order to find out the device's station address. (You
> can only do it via MiniportQueryInformation(), and that only works after
> MiniportInitialize() has been called.)

When 'ntpdate' is called during boot process, everything is (or should 
be) initialized I believe.

-- 
Maxim Maximov
Received on Thu Nov 10 2005 - 18:02:38 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:47 UTC