On 2009-06-29 22:08:00, Dale Rahn <dr...@dalerahn.com> wrote: > On Mon, Jun 29, 2009 at 03:46:35PM -0400, Brad wrote: > > The following diff adds a workaround for an issue with the VIA VT6202 > > EHCI controller hogging the PCI bus and causing poor performance for > > IDE and possibly other devices in the system. > > > > Please test if your system has a VIA VT6202 EHCI controller and > > provide a dmesg. If the workaround is being applied for the > > chipset you have then a message will be printed (this is temporary > > only to verify it is being applied for the appropriate revision > > of the chipset). > > > > > > >From Linux > > > > > > I tried out this patch, and found that the appropriate revision chip > is found in the thecus 2100 system (armish port). Initial testing showed > no performance difference. > > However, I looked at the diff more closely and found that it was wrong, > the original linux code would read/write one byte, however the OpenBSD > interface does word (32bit) reads and writes, howeve this register is > then misaligned. > > After changing the code to do 32 bit accesses and to set the correct bit > in the little endian 32 bit register, the system saw a signficant performance > difference. dd if=/dev/zero of=file bs=1m saw a 10% speedup, and ftp > a file from the local network saw a 7% speedup. > > Arm has a smaller cache that other systems, so may be affected by a > busy memory bus more than other platforms. >
I didn't see any change in running "dd if=/dev/zero of=file bs=1m" before or after the patch on an i386 system so your suspicions may be correct. No regresions or negative behavior seen yet. OpenBSD 4.6-beta (SHOSHONI) #24: Tue Jun 30 06:08:30 PDT 2009 r...@shoshoni.shoshoni.info:/usr/src/sys/arch/i386/compile/SHOSHONI cpu0: AMD Athlon(tm) Processor ("AuthenticAMD" 686-class, 256KB L2 cache) 1.01 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR real mem = 804786176 (767MB) avail mem = 768831488 (733MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 04/23/02, BIOS32 rev. 0 @ 0xf0f80, SMBIOS rev. 2.3 @ 0xf2940 (49 entries) bios0: vendor Award Software, Inc. version "ASUS A7V ACPI BIOS Revision 1011" date 04/23/2002 bios0: ASUSTeK Computer INC. <A7V> apm0 at bios0: Power Management spec V1.2 apm0: AC on, battery charge unknown acpi at bios0 function 0x0 not configured pcibios0 at bios0: rev 2.1 @ 0xf0000/0x1802 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf1750/176 (9 entries) pcibios0: PCI Interrupt Router at 000:04:0 ("VIA VT82C686 ISA" rev 0x00) pcibios0: PCI bus #1 is the last bus bios0: ROM list: 0xc0000/0xf400 0xd0000/0x4000! cpu0 at mainbus0: (uniprocessor) pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 "VIA VT8363 Host" rev 0x02 viaagp0 at pchb0: v2 agp0 at viaagp0: aperture at 0xe0000000, size 0x10000000 ppb0 at pci0 dev 1 function 0 "VIA VT8363 AGP" rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 "ATI Radeon X1300/X1550" rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) radeondrm0 at vga1: irq 11 drm0 at radeondrm0 "ATI Radeon X1300/X1550 Sec" rev 0x00 at pci1 dev 0 function 1 not configured pcib0 at pci0 dev 4 function 0 "VIA VT82C686 ISA" rev 0x22 pciide0 at pci0 dev 4 function 1 "VIA VT82C571 IDE" rev 0x10: ATA66, channel 0 configured to compatibility, channel 1 configured to compatibility wd0 at pciide0 channel 0 drive 0: <ST3500641A> wd0: 16-sector PIO, LBA48, 476940MB, 976773168 sectors wd1 at pciide0 channel 0 drive 1: <Maxtor 6B200P0> wd1: 16-sector PIO, LBA48, 194481MB, 398297088 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4 wd1(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 4 atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: <PLEXTOR, DVDR PX-708A, 1.03> ATAPI 5/cdrom removable atapiscsi1 at pciide0 channel 1 drive 1 scsibus1 at atapiscsi1: 2 targets cd1 at scsibus1 targ 0 lun 0: <ASUS, DVD-ROM E608, 1.40> ATAPI 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2 cd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 uhci0 at pci0 dev 4 function 2 "VIA VT83C572 USB" rev 0x10: irq 9 uhci1 at pci0 dev 4 function 3 "VIA VT83C572 USB" rev 0x10: irq 9 viaenv0 at pci0 dev 4 function 4 "VIA VT82C686 SMBus" rev 0x30: HWM disabled: 24-bit timer at 3579545Hz rl0 at pci0 dev 9 function 0 "Accton MPX 5030/5038" rev 0x10: irq 9, address 00:e0:29:6b:73:e3 rlphy0 at rl0 phy 0: RTL internal PHY emu0 at pci0 dev 10 function 0 "Creative Labs SoundBlaster Live" rev 0x07: irq 5 ac97: codec id 0x54524123 (TriTech Microelectronics TR28602) audio0 at emu0 "Creative Labs PCI Gameport Joystick" rev 0x07 at pci0 dev 10 function 1 not configured re0 at pci0 dev 11 function 0 "Realtek 8169" rev 0x10: RTL8169S (0x0400), irq 10, address 00:e0:4c:77:5a:88 rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 0 sili0 at pci0 dev 12 function 0 "CMD Technology SiI3124 SATA" rev 0x02: irq 11 scsibus2 at sili0: 4 targets sd0 at scsibus2 targ 3 lun 0: <ATA, WDC WD7500AAKS-0, 30.0> SCSI3 0/direct fixed sd0: 715404MB, 512 bytes/sec, 1465149168 sec total uhci2 at pci0 dev 13 function 0 "VIA VT83C572 USB" rev 0x61: irq 9 uhci3 at pci0 dev 13 function 1 "VIA VT83C572 USB" rev 0x61: irq 11 ehci0 at pci0 dev 13 function 2 "VIA VT6202 USB" rev 0x63, applying VIA VT6202 workaround: irq 10 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "VIA EHCI root hub" rev 2.00/1.00 addr 1 pciide1 at pci0 dev 17 function 0 "Promise PDC20265" rev 0x02: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI pciide1: using irq 10 for native-PCI interrupt pciide1: channel 0 disabled (no drives) pciide1: channel 1 disabled (no drives) isa0 at pcib0 isadma0 at isa0 com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pms0 mux 0 pcppi0 at isa0 port 0x61 midi0 at pcppi0: <PC speaker> spkr0 at pcppi0 lpt0 at isa0 port 0x378/4 irq 7 npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec fd1 at fdc0 drive 1: 1.2MB 80 cyl, 2 head, 15 sec usb1 at uhci0: USB revision 1.0 uhub1 at usb1 "VIA UHCI root hub" rev 1.00/1.00 addr 1 usb2 at uhci1: USB revision 1.0 uhub2 at usb2 "VIA UHCI root hub" rev 1.00/1.00 addr 1 usb3 at uhci2: USB revision 1.0 uhub3 at usb3 "VIA UHCI root hub" rev 1.00/1.00 addr 1 usb4 at uhci3: USB revision 1.0 uhub4 at usb4 "VIA UHCI root hub" rev 1.00/1.00 addr 1 biomask ef45 netmask ef45 ttymask ffdf mtrr: Pentium Pro MTRR support uhub5 at uhub2 port 2 "ALCOR Generic USB Hub" rev 1.10/1.00 addr 2 ugen0 at uhub1 port 1 "American Power Conversion Back-UPS BR 800 FW:9.o2 .D USB FW:o2" rev 1.10/1.06 addr 2 uhidev0 at uhub1 port 2 configuration 1 interface 0 "Logitech USB-PS/2 Mouse" rev 1.00/1.20 addr 3 uhidev0: iclass 3/1 ums0 at uhidev0: 3 buttons wsmouse1 at ums0 mux 0 softraid0 at root root on wd0a swap on wd0b dump on wd0b