kern/79783: ata: hw.ata.atapi_dma=1 reduces HDD writing transfer rate

Simun Mikecin simun.mikecin at logos.hr
Mon Apr 11 01:50:22 PDT 2005


>Number:         79783
>Category:       kern
>Synopsis:       ata: hw.ata.atapi_dma=1 reduces HDD writing transfer rate
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 11 08:50:22 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Simun Mikecin
>Release:        FreeBSD 5.4-STABLE i386
>Organization:
>Environment:
System: FreeBSD data.home.hr 5.4-STABLE FreeBSD 5.4-STABLE #0: Wed Apr 6 20:26:25 CEST 2005 root at data.home.hr:/var/obj/usr/src/sys/DATA i386

Reproduced on two machines both using 5.4-STABLE. Tried with GENERIC and
custom kernel.

#1) Laptop Toshiba Qosmio F10 (Centrino, Intel 855/ICH4 chipset) with:
 atapci0: <Intel ICH4 UDMA100 controller> port 0xbfa0-0xbfaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f77 irq 11 at device 31.1 on pci0
 ad0: 57137MB <TOSHIBA MK6026GAX/PA203H> [116088/16/63] atata0-master UDMA100
 acd0: DVDR <MATSHITADVD-RAM UJ-820S/1.00> at ata1-master UDMA33

#2) Pentium 4 desktop PC, Intel 875P/ICH5 chipset with:
 atapci0: <Intel ICH5 UDMA100 controller> port 0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
 ad0: 176700MB <IC35L180AVV207-1/V26OA63A> [359010/16/63] at ata0-master UDMA100
 acd0: DVDROM <Pioneer DVD-ROM ATAPIModel DVD-120S/1.01> at ata0-slave UDMA66
 acd1: DVDR <PIONEER DVD-RW DVR-106D/1.07> at ata1-master UDMA33
	
>Description:
 When hw.ata.atapi_dma is set to 1, HDD writing transfer rate reduces to 16MB/s.
 Reading is not affected. Optical drives are not being used while testing. Using:
	sync && dd if=/dev/zero of=foo bs=1m count=100
 results are:

 Machine #1) with hw.ata.atapi_dma=1:
  104857600 bytes transferred in 6.521342 secs (16079144 bytes/sec)

 Machine #1) with hw.ata.atapi_dma=0:
  104857600 bytes transferred in 3.586123 secs (29239823 bytes/sec)

 Machine #2) with hw.ata.atapi_dma=1:
  104857600 bytes transferred in 6.532039 secs (16052813 bytes/sec)

 Machine #2) with hw.ata.atapi_dma=0:
  104857600 bytes transferred in 2.160149 secs (48541835 bytes/sec)

	
>How-To-Repeat:
 Try:
	sync && dd if=/dev/zero of=foo bs=1m count=100

>Fix:
  Set hw.ata.atapi_dma to 0. But that could break writing to optical media.
	


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list