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

From: Mike Tancsa <mike_at_sentex.net>
Date: Fri, 03 Jul 2009 15:00:34 -0400
At 10:49 AM 7/3/2009, Alexander Motin wrote:
>Mike Tancsa wrote:
> > At 10:26 AM 7/3/2009, Alexander Motin wrote:
> >
> >> Wait! Stop! I have got lost in what we are testing. In some of your your
> >> previous messages today I have seen:
> >
> > Sorry, I just opened up the case to confirm, and it is indeed a SATA DVD
> > drive.
>
>Messages like "it's just not working" will not give anything except
>upsetting me. Usually I need more information. So if you are really what
>to track and fix some problem, please, identify it somehow, to be able
>to send more follow-ups later and compare to different user's results.
>Open cases one by one in separate emails.


Sorry again for the confusion.  I am trying a *different* motherboard 
(INTEL DX58SO) and drive now with your 0629 patch as well as the diff below.

--- ahci.c.prev 2009-06-29 12:48:45.000000000 +0300
+++ ahci.c      2009-06-29 17:25:29.000000000 +0300
_at__at_ -986,7 +986,7 _at__at_ ahci_begin_transaction(device_t dev, uni
                 if (ch->slot[tag].state == AHCI_SLOT_EMPTY)
                         break;
         } while (tag != ch->lastslot);
-       if (tag == ch->lastslot)
+       if (ch->slot[tag].state != AHCI_SLOT_EMPTY)
                 device_printf(ch->dev, "ALL SLOTS BUSY!\n");
         ch->lastslot = tag;
         /* Occupy chosen slot. */


Without the diff, I was getting a steady stream of

ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!

With the above diff, all seems to work well.

Full verbose dmesg and pciconf -lvc at

http://www.tancsa.com/ahci/DX58SO.txt


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)#


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
none7_at_pci0:0:31:3:      class=0x0c0500 card=0x4f538086 
chip=0x3a308086 rev=0x00 hdr=0x00
     vendor     = 'Intel Corporation'
     device     = 'SMB controller  (50011458)'
     class      = serial bus
     subclass   = SMBus
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) 
Received on Fri Jul 03 2009 - 17:00:43 UTC

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