Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Oct 2001 22:24:11 -0400
From:      "David S. Madole" <david@madole.net>
To:        <questions@freebsd.org>
Subject:   DMA performance problem with ethernet load
Message-ID:  <001301c15520$7a521a40$e7e7a8c0@madole.net>

next in thread | raw e-mail | index | archive | help
I've got a performance problem that I'm completely stumped on, but just
can't seem to give up on, either. I'd appreciate if anyone has any ideas
(dmesg at end for reference).

I have two Maxtor drives, a 6GB and a 60GB in the same machine. Both come up
UDMA33 (the limit of the motherboard, a Tyan Trinity 100AT). I've also got
100Mb ethernet in the machine.

If I ftp a file to a filesystem on ad0 (the 6GB), I get a transfer rate
about 5MByte/sec -- seems OK. If I ftp the same file to a filesystem on ad1
(the 60GB) I get a transfer rate of about 500KByte/sec -- one tenth. If I
disable DMA using hw.atamodes for the 60GB time, the rate increases to
5MByte/sec.

If I use dd to copy /dev/zero to a file on the drives, I get close to
20MByte/sec on both drives, when DMA is enabled, about 10MByte/sec without.

Even worse, I tried changing the NIC from an sis0 (NetGear) to dc0 (LinkSys)
and things got worse. Now, under DMA, the 6GB drive does about 1MByte/sec
and the 60GB does about 700KByte/sec. Without DMA, both drives do about
5MByte/sec, which incidentally, is about what I get if I ftp into /dev/null.

It seems there is some sort of conflict between the ethernet I/O and the
hard drive DMA. I'd rather run DMA if possible, because the CPU load is very
high when doing a lot of I/O without it.

Here's what I've tried with no change:

1. Both drives on same IDE channel
2. Reverse master/slave relationship
3. Try 80-pin IDE cable
4. Drives on separate IDE channels, both master
5. Swap drives on channels
6. Change IRQ on ethernet card through 9, 10, 11
7. Change slot of ethernet card
8. Use Maxtor utility to force DMA33 on drive
9. Swap sis0 NIC for dc0 NIC (got worse actually)
10. Rearranged IRQs so none are shared
11. Fool with most BIOS PCI settings

I don't know how to troubleshoot from here. Should I just give up and assume
it's a hopeless chipset-related problem?

Thanks for any help!

Dave


FreeBSD 4.4-RELEASE #2: Sun Oct 14 17:51:41 EDT 2001
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 551253093 Hz
CPU: AMD-K6(tm)-III Processor (551.25-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x5d0  Stepping = 0
  Features=0x8021bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX>
  AMD Features=0xc0000800<SYSCALL,DSP,3DNow!>
real memory  = 134217728 (131072K bytes)
avail memory = 127537152 (124548K bytes)
Preloaded elf kernel "kernel" at 0xc0317000.
K6-family MTRR support enabled (2 registers)
Using $PIR table, 6 entries at 0xc00fddf0
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib2: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on
pci0
pci1: <PCI bus> on pcib2
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xd000-0xd00f at device 7.1 on
pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <Cirrus Logic GD5434 SVGA controller> at 8.0
oltr0: <Olicom PCI/II 16/4 Adapter (OC-3137)> port 0xd800-0xd83f irq 11 at
devic
e 9.0 on pci0
oltr0: MAC address 00:00:83:23:9c:e9
sis0: <NatSemi DP83815 10/100BaseTX> port 0xdc00-0xdcff mem
0xe0001000-0xe0001ff
f irq 9 at device 10.0 on pci0
sis0: Ethernet address: 00:a0:cc:75:1b:be
miibus0: <MII bus> on sis0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
sis1: <NatSemi DP83815 10/100BaseTX> port 0xe000-0xe0ff mem
0xe0000000-0xe0000ff
f irq 9 at device 11.0 on pci0
sis1: Ethernet address: 00:a0:cc:7a:83:00
miibus1: <MII bus> on sis1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pcib1: <Host to PCI bridge> on motherboard
pci2: <PCI bus> on pcib1
orm0: <Option ROM> at iomem 0xc0000-0xc7fff 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>
pcic0: <Vadem 469> at port 0x3e2 on isa0
pcic0: Polling mode
pccard0: <PC Card bus (classic)> on pcic0
pccard1: <PC Card bus (classic)> on pcic0
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
sio2 at port 0x3e8-0x3ef irq 5 on isa0
sio2: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 drq 3 on isa0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
sbc0: <Creative ViBRA16X> at port 0x220-0x22f,0x300-0x301,0x388-0x38b irq 10
drq 0,1 on isa0
pcm0: <SB16 DSP 4.16 (ViBRA16X)> on sbc0
IP packet filtering initialized, divert enabled, rule-based forwarding
enabled,
default to deny, logging disabled
ad0: 6149MB <Maxtor 90644D3> [13328/15/63] at ata0-master UDMA33
ad1: 58623MB <Maxtor 96147U8> [119108/16/63] at ata1-master UDMA33
pccard: card inserted, slot 0
acd0: CDROM <ATAPI 50X CDROM> at ata1-slave using UDMA33
Mounting root from ufs:/dev/ad0s1a
wi0: <WaveLAN/IEEE 802.11> at port 0x240-0x27f irq 12 slot 0 on pccard0
wi0: Ethernet address: 00:e0:63:82:2a:87
oltr0: ring insert (16 Mbps - TKP)
lpt0: switched to polled extended mode




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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001301c15520$7a521a40$e7e7a8c0>