Date: Wed, 20 Feb 2002 10:52:33 -0500 (EST) From: Andrew Gallatin <gallatin@cs.duke.edu> To: sos@freebsd.org Cc: freebsd-hackers@freebsd.org Subject: Serverworks ATA controller & data corruption Message-ID: <15475.50753.252494.269972@grasshopper.cs.duke.edu>
next in thread | raw e-mail | index | archive | help
Hi, I have a few machines with the following ata controller: atapci0@pci0:15:1: class=0x01018a card=0x00000000 chip=0x02111166 rev=0x00 hdr=0x00 vendor = 'Reliance Computer Corp./ServerWorks' device = 'OSB4 PCI EIDE Controller' class = mass storage subclass = ATA They're dual-boot FreeeBSD/linux boxes. After loosing 2 filesystems in linux, I did a web search and I found that linux has a problem with data corruption when using these controllers & disabled IDE DMA in linux. Thinking that FreeBSD was immune (these boxes spend 90% of their time in FreeBSD doing driver development & crashing frequently, haven't lost a fs yet), I continued to run the disk at UDMA33 in FreeBSD. However, I began to notice very minor data corruption when I attempted to buildworld them from 4.4-RELEASE to 4.5-STABLE. By minor, I mean syntax errors in files caused by 4 characters moved a few lines up or down in a file, things like that. I concluded that FreeBSD might not be immune after all and switched to PIO. After checking out a new src tree, the problem seems to be gone and I'm able to buildworld. Do you think it would be wise to disable DMA by default on these chips? Cheers, Drew PS: Here's a dmesg 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.5-STABLE #2: Wed Feb 20 09:33:56 EST 2002 gallatin@ugly:/usr/src/sys/compile/SMP Timecounter "i8254" frequency 1193182 Hz CPU: Pentium III/Pentium III Xeon/Celeron (999.53-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x68a Stepping = 10 Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE> real memory = 536805376 (524224K bytes) avail memory = 517681152 (505548K bytes) Programming 16 pins in IOAPIC #0 IOAPIC #0 intpin 2 -> irq 0 Programming 16 pins in IOAPIC #1 FreeBSD/SMP: Multiprocessor motherboard cpu0 (BSP): apic id: 0, version: 0x00040011, at 0xfee00000 cpu1 (AP): apic id: 1, version: 0x00040011, at 0xfee00000 io0 (APIC): apic id: 4, version: 0x000f0011, at 0xfec00000 io1 (APIC): apic id: 5, version: 0x000f0011, at 0xfec01000 Preloaded elf kernel "kernel" at 0xc0488000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 9 entries at 0xc00f5250 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <ServerWorks NB6635 3.0LE host to PCI bridge> on motherboard IOAPIC #1 intpin 15 -> irq 2 IOAPIC #0 intpin 10 -> irq 5 pci0: <PCI bus> on pcib0 fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xd800-0xd83f mem 0xfc800000-0xfc8fffff,0xfc9fe000-0xfc9fefff irq 2 at device 6.0 on pci0 fxp0: Ethernet address 00:30:48:21:e4:47 inphy0: <i82555 10/100 media interface> on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto isab0: <ServerWorks IB6566 PCI to ISA bridge> at device 15.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <ServerWorks ROSB4 ATA33 controller> port 0xffa0-0xffaf at device 15.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 ohci0: <OHCI (generic) USB controller> mem 0xfc9ff000-0xfc9fffff irq 5 at device 15.2 on pci0 usb0: OHCI version 1.0, legacy support usb0: <OHCI (generic) USB controller> on ohci0 usb0: USB revision 1.0 uhub0: (unknown) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 4 ports with 4 removable, self powered pcib1: <ServerWorks NB6635 3.0LE host to PCI bridge> on motherboard IOAPIC #1 intpin 8 -> irq 9 IOAPIC #1 intpin 10 -> irq 10 pci1: <PCI bus> on pcib1 pci1: <ATI Mach64-GO graphics accelerator> at 1.0 irq 9 pci1: <unknown card> (vendor=0x14c1, dev=0x8043) at 2.0 irq 10 orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xc8fff 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 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 APIC_IO: Testing 8254 interrupt delivery APIC_IO: Broken MP table detected: 8254 is not connected to IOAPIC #0 intpin 2 APIC_IO: routing 8254 via 8259 and IOAPIC #0 intpin 0 SMP: AP CPU #1 Launched! ad0: 19092MB <ST320414A> [38792/16/63] at ata0-master PIO4 acd0: CDROM <CDU5211> at ata1-master using PIO4 Mounting root from ufs:/dev/ad0s2a gm0: <Myrinet PCI interface> mem 0xfb000000-0xfbffffff irq 10 at device 2.0 on pci1 GM: driver version 1.5pre1_for_Tru64 gallatin Tue Feb 19 07:10:49 PST 2002 WARNING: Unit 0 is 64-bit-DMA-addr-capable, but GM_SIZEOF_DP_T = 4 MCP for unit 0: L9 4K (new features) LANai rate set to 199 MHz (max = 202 MHz) Board 0 page hash cache has 65536 bins. GM: gm_register_memory will be able to lock 83994 pages (328 MBytes) GM: IP interface attach ok To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15475.50753.252494.269972>