kernel crash on screen blanking during Usb 2.0 data transfer
Delbert D. Franz
ddf at sonic.net
Thu Apr 29 21:23:57 BST 2004
USB 2.0 data transfers using a USB hard drive work well with my
Dell Inspiron 7500 laptop with an IOGear GPU202 USB 2.0 cardbus
card. In order to keep the kernel from crashing almost as fast
as pulling the power plug, I have found that I need to disable all
screen blanking and not do much on the screen. The kernel
does not always crash when the screen blanks or when a major
change takes place on the screen. However, when it does crash
it is always associated with a screen blanking event or a
major screen refresh event, such as closing a larger graphics window.
I am currently running kernel 2.6.6-rc1 compiled on a Libranet 2.8.1
distro (based on Debian testing and unstable for the most part).
I can transfer large amounts of data, about 21 GB, in a stable manner
so long as I keep the screen static throughout. I configured for the
yenta_socket and I also installed the latest unstable pcmcia-cs
from the Debian site.
The output of lspci -v, see below, shows that the yenta_socket
cardbus drivers assigned the cardbus bridge to IRQ 11, the
same bridge assigned to the video card. I suspect that there
is some subtle problem in IRQ sharing. Here are the tests
I have done to try to isolate the factors related to these
kernel crashes:
1. Transfer about 2 GB over the lan which uses the NIC
cardbus. At the same time do frequent screen blanks as
well as large video changes with a slide show from kuickshow.
Solid as a rock. Thus the cardbus code that handles the NIC
and the cardbus bridges seems to share the IRQ with the
video card ok.
2. Take out the NIC card bus and try the USB card bus again.
Fails like before.
3. Switch to a USB2connect for notebooks from Adaptec:
model AUA-1420A. Same crash pattern. Both cards appear
to be built on the same NEC silicon-thus the similar behavior
This problem has been present with my laptop from kernel
version about 2.4.20 or so until the present. No kernel that
I have tested has been able to avoid these crashes!
Questions:
1. Is there a way to get the yenta_socket code to report
which PCI IRQ's work with the card bus bridge?
2. Assuming that there is an IRQ different than 11 that
will work with the cardbus bridge, is there a way to
get the kernel to use that IRQ for the cardbus bridge only?
As far as I can tell, there are unused IRQ's below 11 but
who knows which one's of these can even service the
cardbus bridge?
The goal is to get the video card and the cardbus bridge
with unique IRQ's as a work-around and to test if in fact
it is a problem with IRQ sharing. The unpredictable nature
of the failures will make finding the problem difficult.
However, a crash will always occur at some point when
the usb hard drive is mounte, even if there is not
external activity and no writing for hours a t a time.
Some cron events seemed related to the crash but
I have not be able to duplicate a crash by manually
running the cron events.
I have poked around in the kernel code, the kernel docs,
and Googled until I grew weary and I have found no
answers.
Thanks for looking at this annoying problem.
Delbert
Here is the output from lspci -v with both cardbus cards inserted:
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
Flags: bus master, medium devsel, latency 64
Memory at e0000000 (32-bit, prefetchable) [size=64M]
Capabilities: [a0] AGP version 1.0
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, 66Mhz, medium devsel, latency 128
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 00002000-00002fff
Memory behind bridge: fc000000-fdffffff
00:04.0 CardBus bridge: Texas Instruments PCI1225 (rev 01)
Subsystem: Dell Computer Corporation: Unknown device 009e
Flags: bus master, medium devsel, latency 168, IRQ 11
Memory at 20000000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
Memory window 0: 20400000-207ff000 (prefetchable)
Memory window 1: 20800000-20bff000
I/O window 0: 00004000-000040ff
I/O window 1: 00004400-000044ff
16-bit legacy interface ports at 0001
00:04.1 CardBus bridge: Texas Instruments PCI1225 (rev 01)
Subsystem: Dell Computer Corporation: Unknown device 009e
Flags: bus master, medium devsel, latency 168, IRQ 11
Memory at 20001000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
Memory window 0: 20c00000-20fff000 (prefetchable)
Memory window 1: 21000000-213ff000
I/O window 0: 00004800-000048ff
I/O window 1: 00004c00-00004cff
16-bit legacy interface ports at 0001
00:07.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
Flags: bus master, medium devsel, latency 0
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
Flags: bus master, medium devsel, latency 64
I/O ports at 1080 [size=16]
00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
Flags: bus master, medium devsel, latency 64, IRQ 5
I/O ports at 1060 [size=32]
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
Flags: medium devsel, IRQ 9
00:08.0 Multimedia audio controller: ESS Technology ES1978 Maestro 2E (rev 10)
Subsystem: Dell Computer Corporation: Unknown device 009e
Flags: bus master, medium devsel, latency 64, IRQ 5
I/O ports at 1400 [size=256]
Capabilities: [c0] Power Management version 2
01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64) (prog-if 00 [VGA])
Subsystem: Dell Computer Corporation: Unknown device 009e
Flags: bus master, stepping, medium devsel, latency 66, IRQ 11
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at 2000 [size=256]
Memory at fc000000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [50] AGP version 1.0
Capabilities: [5c] Power Management version 1
02:00.0 Ethernet controller: 3Com Corporation 3CCFE575CT Cyclone CardBus (rev 10)
Subsystem: 3Com Corporation FE575C-3Com 10/100 LAN CardBus-Fast Ethernet
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at 4000 [size=128]
Memory at 20800000 (32-bit, non-prefetchable) [size=128]
Memory at 20800080 (32-bit, non-prefetchable) [size=128]
Expansion ROM at 20400000 [disabled] [size=128K]
Capabilities: [50] Power Management version 1
06:00.0 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
Subsystem: Unknown device 1735:0035
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at 21000000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
06:00.1 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
Subsystem: Unknown device 1735:0035
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at 21001000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
06:00.2 USB Controller: NEC Corporation USB 2.0 (rev 02) (prog-if 20 [EHCI])
Subsystem: Unknown device 1735:00e0
Flags: bus master, medium devsel, latency 68, IRQ 11
Memory at 21002000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 2
Here is the kern.log with the constant initial field removed to
save space:
klogd 1.4.1#10, log source = /proc/kmsg started.
Inspecting /boot/System.map-2.6.6-rc1
Loaded 21192 symbols from /boot/System.map-2.6.6-rc1.
Symbols match kernel version 2.6.6.
No module symbols loaded - kernel modules not enabled.
Linux version 2.6.6-rc1 (root at del.work) (gcc version 3.2.3 20030316 (Debian prerelease)) #14 Wed Apr 21 08:52:08 PDT 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ea000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000001fff0000 (usable)
BIOS-e820: 000000001fff0000 - 000000001ffffc00 (ACPI data)
BIOS-e820: 000000001ffffc00 - 0000000020000000 (ACPI NVS)
BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
511MB LOWMEM available.
On node 0 totalpages: 131056
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 126960 pages, LIFO batch:16
HighMem zone: 0 pages, LIFO batch:1
DMI 2.3 present.
ACPI disabled because your bios is from 2000 and too old
You can enable it with acpi=force
Dell Inspiron with broken BIOS detected. Refusing to enable the local APIC.
Built 1 zonelists
Kernel command line: splash=silent root=/dev/hda6 ro vga=791 pc=usepirqmask
Initializing CPU#0
PID hash table entries: 2048 (order 11: 16384 bytes)
Detected 501.158 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Memory: 516688k/524224k available (1657k kernel code, 6776k reserved, 642k data, 128k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 999.42 BogoMIPS
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383f9ff 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383f9ff 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383f9ff 00000000 00000000 00000040
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel Pentium III (Coppermine) stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfd9ae, last bus=1
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Using IRQ router PIIX/ICH [8086/7110] at 0000:00:07.0
PCI: IRQ 0 for device 0000:00:04.0 doesn't match PIRQ mask - try pci=usepirqmask
PCI: Found IRQ 11 for device 0000:00:04.0
PCI: Sharing IRQ 11 with 0000:00:04.1
PCI: Sharing IRQ 11 with 0000:01:00.0
PCI: Cannot allocate resource region 4 of device 0000:00:07.1
vesafb: framebuffer at 0xfd000000, mapped to 0xe0800000, size 8128k
vesafb: mode is 1024x768x16, linelength=2048, pages=4
vesafb: protected mode interface info at c000:506a
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
fb0: VESA VGA frame buffer device
Initializing Cryptographic API
Limiting direct PCI/PCI transfers.
Console: switching to colour frame buffer device 128x48
Using anticipatory io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:07.1
PIIX4: chipset revision 1
PIIX4: not 100%% native mode: will probe irqs later
ide0: BM-DMA at 0x1080-0x1087, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0x1088-0x108f, BIOS settings: hdc:DMA, hdd:pio
hda: HTS548080M9AT00, ATA DISK drive
hdb: IC25N040ATCS04-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: TOSHIBA CD-ROM XM-1902B, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 1024KiB
hda: 156301488 sectors (80026 MB) w/7877KiB Cache, CHS=16383/255/63, UDMA(33)
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 >
hdb: max request size: 128KiB
hdb: 78140160 sectors (40007 MB) w/1768KiB Cache, CHS=65535/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4 < hdb5 hdb6 hdb7 hdb8 >
usbcore: registered new driver hid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
input: PC Speaker
serio: i8042 AUX port at 0x60,0x64 irq 12
Synaptics Touchpad, model: 1
Firmware: 4.3
180 degree mounted touchpad
Sensor: 8
new absolute packet format
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
found reiserfs format "3.6" with standard journal
reiserfs: using ordered data mode
Reiserfs journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
reiserfs: checking transaction log (hda6) for (hda6)
Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 128k freed
Adding 1052248k swap on /dev/hda2. Priority:-1 extents:1
Real Time Clock Driver v1.12
SCSI subsystem initialized
hdc: ATAPI 24X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.20
Linux agpgart interface v0.100 (c) Dave Jones
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
PCI: Found IRQ 5 for device 0000:00:08.0
PCI: Sharing IRQ 5 with 0000:00:07.2
maestro: Configuring ESS Maestro 2E found at IO 0x1400 IRQ 5
maestro: subvendor id: 0x009e1028
maestro: PCI power management capability: 0x7622
maestro: AC97 Codec detected: v: 0x83847609 caps: 0x6940 pwr: 0xf
maestro: 1 channels configured.
maestro: version 0.15 time 08:45:00 Apr 21 2004
found reiserfs format "3.6" with standard journal
reiserfs: using ordered data mode
Reiserfs journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
reiserfs: checking transaction log (hda5) for (hda5)
Using r5 hash to sort names
found reiserfs format "3.6" with standard journal
reiserfs: using ordered data mode
Reiserfs journal params: device hda10, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
reiserfs: checking transaction log (hda10) for (hda10)
Using r5 hash to sort names
found reiserfs format "3.6" with standard journal
reiserfs: using ordered data mode
Reiserfs journal params: device hda9, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
reiserfs: checking transaction log (hda9) for (hda9)
Using r5 hash to sort names
ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
USB Universal Host Controller Interface driver v2.2
PCI: Found IRQ 5 for device 0000:00:07.2
PCI: Sharing IRQ 5 with 0000:00:08.0
uhci_hcd 0000:00:07.2: Intel Corp. 82371AB/EB/MB PIIX4 USB
uhci_hcd 0000:00:07.2: irq 5, io base 00001060
uhci_hcd 0000:00:07.2: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usb 1-1: new full speed USB device using address 2
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.1: new low speed USB device using address 3
input: USB HID v1.10 Mouse [Logitech Trackball] on usb-0000:00:07.2-1.1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0: LSR safety check engaged!
ttyS0: LSR safety check engaged!
ttyS1: LSR safety check engaged!
ttyS1: LSR safety check engaged!
hdc: DMA disabled
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport0: irq 7 detected
lp0: using parport0 (polling).
ttyS0: LSR safety check engaged!
ttyS1: LSR safety check engaged!
Installing knfsd (copyright (C) 1996 okir at monad.swb.de).
Linux Kernel Card Services
options: [pci] [cardbus] [pm]
PCI: Found IRQ 11 for device 0000:00:04.0
PCI: Sharing IRQ 11 with 0000:00:04.1
PCI: Sharing IRQ 11 with 0000:01:00.0
Yenta: CardBus bridge found at 0000:00:04.0 [1028:009e]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:04.0, mfunc 0x01021c72, devctl 0x66
Yenta: ISA IRQ mask 0x0698, PCI irq 11
Socket status: 30000020
PCI: Found IRQ 11 for device 0000:00:04.1
PCI: Sharing IRQ 11 with 0000:00:04.0
PCI: Sharing IRQ 11 with 0000:01:00.0
Yenta: CardBus bridge found at 0000:00:04.1 [1028:009e]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:04.1, mfunc 0x01021c72, devctl 0x66
Yenta: ISA IRQ mask 0x0698, PCI irq 11
Socket status: 30000006
PCI: Enabling device 0000:02:00.0 (0000 -> 0003)
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
0000:02:00.0: 3Com PCI 3CCFE575CT Tornado CardBus at 0x4000. Vers LK1.1.19
PCI: Setting latency timer of device 0000:02:00.0 to 64
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
mtrr: 0xfd000000,0x800000 overlaps existing 0xfd000000,0x400000
mtrr: 0xfd000000,0x800000 overlaps existing 0xfd000000,0x400000
atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
spurious 8259A interrupt: IRQ7.
PCI: Enabling device 0000:06:00.0 (0000 -> 0002)
ohci_hcd 0000:06:00.0: NEC Corporation USB
PCI: Setting latency timer of device 0000:06:00.0 to 64
ohci_hcd 0000:06:00.0: irq 11, pci mem e1391000
ohci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
PCI: Enabling device 0000:06:00.1 (0000 -> 0002)
ohci_hcd 0000:06:00.1: NEC Corporation USB (#2)
PCI: Setting latency timer of device 0000:06:00.1 to 64
ohci_hcd 0000:06:00.1: irq 11, pci mem e13ca000
ohci_hcd 0000:06:00.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
PCI: Enabling device 0000:06:00.2 (0000 -> 0002)
ehci_hcd 0000:06:00.2: NEC Corporation USB 2.0
ehci_hcd 0000:06:00.2: irq 11, pci mem e13e8000
ehci_hcd 0000:06:00.2: new USB bus registered, assigned bus number 4
ehci_hcd 0000:06:00.2: USB 2.0 enabled, EHCI 0.95, driver 2003-Dec-29
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 5 ports detected
More information about the linux-pcmcia
mailing list