Re: RFC: ATA to CAM integration patch (INTEL DX58SO)

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Fri, 03 Jul 2009 22:31:14 +0300
Mike Tancsa wrote:
> I am trying a *different* motherboard 
> (INTEL DX58SO) and drive now with your 0629 patch as well as the diff 
> below.
> With the above diff, all seems to work well.
> 
> Full verbose dmesg and pciconf -lvc at
> 
> http://www.tancsa.com/ahci/DX58SO.txt

Fine.

> Read/Write speed looks good with a more modern disk as well
> 
>               -------Sequential Output-------- ---Sequential Input-- 
> --Random--
>               -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- 
> --Seeks---
> Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  
> /sec %CPU
>          4000 103884 51.4 109344  9.7 42048  6.0 91201 59.0 116723  8.5 
> 1123.4  2.0
> 0(ich10)# dd if=/dev/ada0 of=/dev/null bs=1m count=1000
> 1000+0 records in
> 1000+0 records out
> 1048576000 bytes transferred in 7.562206 secs (138660068 bytes/sec)
> 0(ich10)#

Fine. But first test still looks like bound by something. Or this test 
requires some tuning, or it is used over file system, your system may 
require tuning.

It would be more interesting to investigate benefits on NCQ suitable 
workload, as that are new for us. Something like unpacking a lot of 
small files to normal or async-mounted or gjournalled FS, or some 
multi-threaded read, or something else. Would be nice to understand on 
which types of workload NCQ could give us visible effects.

You can track real requests parallelism by looking on dev_active field 
of `camcontrol tags ada0 -v`.

> The eSata port does not work, but it never did under the old driver 
> either. I think it has a separate controller ?  At the BIOS boot up 
> time, it shows some Marvell controller talking to the eSata attached 
> drive, and pciconf does show a separate ATA controller
> 
> 
> ahci0_at_pci0:0:31:2:      class=0x010601 card=0x4f538086 chip=0x3a228086 
> rev=0x00 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '6 port SATA AHCI Controller'
>     class      = mass storage
>     subclass   = SATA
>     cap 05[80] = MSI supports 16 messages enabled with 1 message
>     cap 01[70] = powerspec 3  supports D0 D3  current D0
>     cap 12[a8] = SATA Index-Data Pair

As I have noted in man page, "mass storage"/"SATA" is right device.

> atapci0_at_pci0:6:0:0:     class=0x01018f card=0x4f538086 chip=0x612111ab 
> rev=0xb2 hdr=0x00
>     vendor     = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
>     device     = '6121 SATA2 Controller'
>     class      = mass storage
>     subclass   = ATA
>     cap 01[48] = powerspec 2  supports D0 D1 D3  current D0
>     cap 05[50] = MSI supports 1 message
>     cap 10[e0] = PCI-Express 1 legacy endpoint max data 128(128) link 
> x1(x1)

But this device, implementing both PATA and SATA ports, report itself as 
PATA controller. It's SATA part may be AHCI compatible, but driver 
unable to attach it due to incorrect device identification. Alike 
happens to my JMicron controllers, but in that case system BIOS is able 
to switch it into the right mode with separate PATA and AHCI SATA 
controllers devices.

-- 
Alexander Motin
Received on Fri Jul 03 2009 - 17:31:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:51 UTC