Subject: Re: Promise SATA 300 confusion
To: None <netbsd-users@netbsd.org>
From: Jukka Salmi <j+nbsd@2007.salmi.ch>
List: netbsd-users
Date: 06/26/2007 17:05:25
Jukka Salmi --> netbsd-users (2007-06-23 11:07:19 +0200):
[...]
> Since the 2.6 numbers match with what NetBSD uses I assume everything
> else is a typo and go for a SATA300 TX4 ;-)

I finally got a TX4, and it seems to work so far (running on a -current
system):

pdcsata0 at pci0 dev 11 function 0
pdcsata0: Promise PDC40718 SATA300 controller (rev. 0x02)
pdcsata0: interrupting at irq 7
pdcsata0: bus-master DMA support present
atabus0 at pdcsata0 channel 0
atabus1 at pdcsata0 channel 1
atabus2 at pdcsata0 channel 2
atabus3 at pdcsata0 channel 3
[...]
pdcsata0 port 1: device present, speed: 3.0Gb/s
pdcsata0 port 3: device present, speed: 3.0Gb/s

However, when booting the system there's a lost interrupt for each
port:

wd0 at atabus1 drive 0pdcsata0:1:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
: <SAMSUNG HD321KJ>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 298 GB, 620181 cyl, 16 head, 63 sec, 512 bytes/sect x 625142448 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 7
wd0(pdcsata0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
wd1 at atabus3 drive 0pdcsata0:3:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
: <SAMSUNG HD321KJ>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 298 GB, 620181 cyl, 16 head, 63 sec, 512 bytes/sect x 625142448 sectors
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 7
wd1(pdcsata0:3:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)

I only see this while booting, so this seems not to be a real problem.
(Is it?)

But performance is worse than expected. Comparing these new SATA disks
to the old PATA disks connected to the onboard controller

viaide0 at pci0 dev 17 function 1
viaide0: VIA Technologies VT8235 ATA133 controller
viaide0: bus-master DMA support present
viaide0: primary channel configured to compatibility mode
viaide0: primary channel interrupting at irq 14
atabus4 at viaide0 channel 0
viaide0: secondary channel configured to compatibility mode
viaide0: secondary channel interrupting at irq 15
atabus5 at viaide0 channel 1
[...]
wd2 at atabus4 drive 0: <HDS728080PLAT20>
wd2: drive supports 16-sector PIO transfers, LBA48 addressing
wd2: 78533 MB, 159560 cyl, 16 head, 63 sec, 512 bytes/sect x 160836480 sectors
wd2: 32-bit data port
wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd2(viaide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
cd0(viaide0:0:1): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
wd3 at atabus5 drive 0: <HDS728080PLAT20>
wd3: drive supports 16-sector PIO transfers, LBA48 addressing
wd3: 78533 MB, 159560 cyl, 16 head, 63 sec, 512 bytes/sect x 160836480 sectors
wd3: 32-bit data port
wd3: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd3(viaide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)

regarding write speed reveals that the onboard PATA controller is about
twice as fast:

ccd0: concatenation of two PATA disks, ffs, softdep:

$ dd bs=1m count=512 if=/dev/zero of=out
512+0 records in
512+0 records out
536870912 bytes transferred in 7.007 secs (76619225 bytes/sec)

ccd1: concatenation of two SATA disks, ffs, softdep:

$ dd bs=1m count=512 if=/dev/zero of=out
512+0 records in
512+0 records out
536870912 bytes transferred in 11.069 secs (48502205 bytes/sec)

raid0: RAID1 mirror using two PATA disks, ffs:

$ dd bs=1m count=512 if=/dev/zero of=out
512+0 records in
512+0 records out
536870912 bytes transferred in 10.156 secs (52862437 bytes/sec)

raid1: RAID1 mirror using two SATA disks, ffs:

$ dd bs=1m count=512 if=/dev/zero of=out
512+0 records in
512+0 records out
536870912 bytes transferred in 22.357 secs (24013548 bytes/sec)


Hmm, any hints what could be the bottleneck here?

TIA, Jukka

-- 
bashian roulette:
$ ((RANDOM%6)) || rm -rf ~