Date: Tue, 12 Jan 1999 17:12:13 -0500 (EST) From: "Andrew Atrens" <atrens@nortelnetworks.com> To: current@FreeBSD.ORG Cc: lcremean@tidalwave.net Subject: Re: potential ide_pci.c bugster Message-ID: <Pine.BSF.4.05.9901121615040.600-100000@hcarp00g.ca.nortel.com> In-Reply-To: <19990112004945.A68879@tidalwave.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi All, I've been experiencing pci-ide timeouts of the showstopper variety. Lee has postulated that this has to do with my bus speed 83Mhz .. so I reclocked to 66Mhz and the behaviour persists. I've appended the original mail I sent to Lee, along with (just for fun) my kernel config and dmesg output. Note that I haven't been able to capture the dmesg output inspired by the below patch - the system locks up tighter than a drum. I did however transcribe the following (hopefully relevant bits) by hand ... wd0: interrupt timeout (status 50 <rdy, seekdone> error 0) wd0: wdtimeout() DMA status 1 <active> Interesting thing is this drive, wd0, is about 2 years old and doesn't support UDMA. While wd1, a new drive, does do UDMA. My system is current as of yesterday. I'm not sure why the below patch tickles this bug, any suggestions/insights you can provide would be greatly appreciated. Regards, Andrew. -- +----------------------------------------------------+ = Andrew Atrens - Nortel Networks (atrens@nortel.ca) = = P.O. Box 3511, Station C Ottawa, Canada = = = = All opinions expressed are mine, not Nortel's. = +----------------------------------------------------+ (original message follows) Lee, Around the middle of December you (actually Mike on behalf of you) committed a patch to pci_ide.c which has since been hosing my system: # diff -c /home/cvs/sys/pci/ide_pci.c* *** /home/cvs/sys/pci/ide_pci.c Mon Jan 11 19:29:54 1999 --- /home/cvs/sys/pci/ide_pci.c.ctm Mon Jan 11 19:28:35 1999 *************** *** 1195,1201 **** cp = softc.cookies.lh_first; while(cp) { ! if (cp->ctlr == unit && ((iobase_wd == 0) || (cp->iobase_wd == iobase_wd))) break; cp = cp->le.le_next; --- 1195,1201 ---- cp = softc.cookies.lh_first; while(cp) { ! if (cp->unit == unit && ((iobase_wd == 0) || (cp->iobase_wd == iobase_wd))) break; cp = cp->le.le_next; With this commit, my system freezes on boot with DMA timeout messages when it tries to mount root on wd1. It's a total showstopper. >>> (oops, that should have been wd0) I disabled DMA (ala wdc0 flags) and everything worked, though of course more slowly. :) So, instead I chose to back out your change, and wait to see if anyone else fell in the pit. Since the mailing list seems to be pretty silent on the topic, maybe it's just me :) ... I've got an ABIT motherboard with TX chipset, bussed at 83MHz, that seems to run quick enough: --root@churchill:/var/log-- # dd if=/dev/rwd0 of=/dev/null bs=1024k count=50 50+0 records in 50+0 records out 52428800 bytes transferred in 10.040942 secs (5221502 bytes/sec) --root@churchill:/var/log-- # dd if=/dev/rwd1 of=/dev/null bs=1024k count=50 50+0 records in 50+0 records out 52428800 bytes transferred in 4.538576 secs (11551817 bytes/sec) wd0 doesn't do udma, while wd1 does, with dma disabled both drives perform comparably. --- (here's my kernel config) machine "i386" cpu "I586_CPU" ident CHURCHILL maxusers 32 options USERCONFIG options INCLUDE_CONFIG_FILE options SOFTUPDATES options INET options FFS options FFS_ROOT options NFS options NFS_ROOT options MFS options MFS_ROOT options "CD9660" options "CD9660_ROOT" options "CD9660_ROOTDELAY=20" options MSDOSFS options PROCFS options "COMPAT_43" options "COMPAT_LINUX" options USER_LDT options "VM86" options VESA options UCONSOLE options SYSVSHM options SYSVSEM options SYSVMSG options ATAPI options ATAPI_STATIC options PQ_LARGECACHE options "CPU_WT_ALLOC" options "NO_MEMORY_HOLE" options "NO_F00F_HACK" options NSWAPDEV=2 options "MD5" config kernel root on wd0 dumps on wd0 controller isa0 controller pnp0 controller pci0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 disk fd0 at fdc0 drive 0 controller wdc0 at isa? port "IO_WD1" bio irq 14 flags 0xb0ffb0ff disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 flags 0xb0ffb0ff device acd0 device acd1 controller atkbdc0 at isa? port IO_KBD tty device atkbd0 at isa? tty irq 1 device psm0 at isa? tty irq 12 device vga0 at isa? port ? conflicts pseudo-device splash device sc0 at isa? tty options MAXCONS=16 # number of virtual consoles options SC_HISTORY_SIZE=200 # number of history buffer lines device npx0 at isa? port "IO_NPX" iosiz 0x0 flags 0x0 irq 13 device pcm0 at isa? port 0x530 tty irq 10 drq 1 flags 0x0 device sio0 at isa? port "IO_COM1" tty irq 4 device sio1 at isa? port "IO_COM2" tty irq 3 device lpt0 at isa? port "IO_LPT2" tty irq 5 device tw0 at isa? port "IO_LPT3" tty irq 7 device ed0 at isa? port 0x240 net irq 9 iomem ? pseudo-device loop pseudo-device ether pseudo-device sl 2 pseudo-device ppp 2 pseudo-device tun 2 pseudo-device pty 128 pseudo-device gzip pseudo-device vn pseudo-device bpfilter 4 (here's dmesg and friends) (hmm, it seems pnp doesn't see my soundcard anymore ... ) Copyright (c) 1992-1999 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.0-CURRENT #4: Mon Jan 11 22:05:55 EST 1999 root@churchill:/home/cvs/sys/compile/CHURCHILL Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 334092111 Hz CPU: AMD-K6(tm) 3D processor (334.09-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x58c Stepping=12 Features=0x8021bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX> real memory = 67108864 (65536K bytes) config> pnp 1 0 os enable irq0 10 drq0 1 config> pnp 1 0 os enable port0 0x220 port1 0x530 port2 0x388 config> pnp 1 0 os enable port3 0x300 port4 0x370 config> quit avail memory = 62390272 (60928K bytes) Preloaded elf kernel "kernel1" at 0xf02bc000. Preloaded userconfig_script "/boot/pnp.conf" at 0xf02bc09c. Probing for devices on PCI bus 0: chip0: <Intel 82439TX System Controller (MTXC)> rev 0x01 on pci0.0.0 chip1: <Intel 82371AB PCI to ISA bridge> rev 0x01 on pci0.7.0 ide_pci0: <Intel PIIX4 Bus-master IDE controller> rev 0x01 on pci0.7.1 chip2: <Intel 82371AB Power management controller> rev 0x01 on pci0.7.3 vga0: <ATI model 4750 graphics accelerator> rev 0x5c on pci0.11.0 ed1: <NE2000 PCI Ethernet (RealTek 8029)> rev 0x00 int a irq 11 on pci0.13.0 ed1: address 00:40:05:59:30:f0, type NE2000 (16 bit) Probing for PnP devices: Probing for devices on the ISA bus: sc0 on isa sc0: VGA color <16 virtual consoles, flags=0x0> ed0 at 0x240-0x25f irq 9 on isa ed0: address 00:40:05:48:11:c9, type NE2000 (16 bit) pcm0 not found at 0x530 atkbdc0 at 0x60-0x6f on motherboard atkbd0 irq 1 on isa psm0 irq 12 on isa psm0: model Generic PS/2 mouse, device ID 0 sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A lpt0 at 0x278-0x27f irq 5 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface tw calibration: delay loop is 21 us. tw0 at 0x3bc-0x3c3 irq 7 on isa fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: FIFO enabled, 8 bytes threshold fd0: 1.44MB 3.5in wdc0 at 0x1f0-0x1f7 irq 14 flags 0xb0ffb0ff on isa wdc0: unit 0 (wd0): <ST52520A>, LBA, DMA, 32-bit, multi-block-16 wd0: 2446MB (5009760 sectors), 621 cyls, 128 heads, 63 S/T, 512 B/S wdc0: unit 1 (wd1): <QUANTUM FIREBALL EL5.1A>, LBA, DMA, 32-bit, multi-block-16 wd1: 4892MB (10018890 sectors), 623 cyls, 255 heads, 63 S/T, 512 B/S wdc1 at 0x170-0x177 irq 15 flags 0xb0ffb0ff on isa wdc1: unit 0 (atapi): <NEC CD-ROM DRIVE:273/4.25>, removable, iordy acd0: drive speed 689KB/sec, 256KB cache acd0: supported read types: CD-DA acd0: Audio: play, 256 volume levels acd0: Mechanism: ejectable tray acd0: Medium: no/blank disc inside, unlocked wdc1: unit 1 (atapi): <HP CD-Writer+ 7200/V:003.01>, removable, dma, iordy acd1: drive speed 344 - 1034KB/sec, 768KB cache acd1: supported read types: CD-R, CD-RW, CD-DA, packet track acd1: supported write types: CD-R, CD-RW, test write acd1: Audio: play, 128 volume levels acd1: Mechanism: ejectable tray acd1: Medium: no/blank disc inside, unlocked, lock protected vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa npx0 on motherboard npx0: INT 16 interface changing root device to wd1s2e ffs_mountfs: superblock updated for soft updates ffs_mountfs: superblock updated for soft updates ffs_mountfs: superblock updated for soft updates VESA: set_mode(): 24(18) -> 204(cc) VESA: set_mode(): 34(22) -> 204(cc) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9901121615040.600-100000>