svn commit: r196777 - head/sys/dev/ahci

Alexander Motin mav at FreeBSD.org
Thu Sep 3 14:54:56 UTC 2009


Scott Long wrote:
> In this case, set maxio to 64k, not 127.5k.  You'll typically get much 
> better i/o performance out of two 64k transfers
> than you will out of one 127.k transfer and one 512 bytes transfer, 
> which is what the block layer will give you if
> you try to send 128k.

Couldn't it be somehow handled on that level? Limiting maxio from 127.5K 
to 64K is also a penalty for requests with length in that range. It 
would be nice if every level would do it's own job.

> On Sep 3, 2009, at 6:37 AM, Alexander Motin wrote:
>> Author: mav
>> Date: Thu Sep  3 12:37:17 2009
>> New Revision: 196777
>> URL: http://svn.freebsd.org/changeset/base/196777
>>
>> Log:
>>  ATI SB600 can't handle 256 sectors transfers with FPDMA (NCQ).
>>
>>  MFC after:    3 days
>>
>> Modified:
>>  head/sys/dev/ahci/ahci.c
>>
>> Modified: head/sys/dev/ahci/ahci.c
>> ============================================================================== 
>>
>> --- head/sys/dev/ahci/ahci.c    Thu Sep  3 10:06:37 2009    (r196776)
>> +++ head/sys/dev/ahci/ahci.c    Thu Sep  3 12:37:17 2009    (r196777)
>> @@ -1942,6 +1942,9 @@ ahciaction(struct cam_sim *sim, union cc
>>         cpi->protocol = PROTO_ATA;
>>         cpi->protocol_version = PROTO_VERSION_UNSPECIFIED;
>>         cpi->maxio = MAXPHYS;
>> +        /* ATI SB600 can't handle 256 sectors with FPDMA (NCQ). */
>> +        if (pci_get_devid(device_get_parent(dev)) == 0x43801002)
>> +            cpi->maxio = min(cpi->maxio, 255 * 512);
>>         cpi->ccb_h.status = CAM_REQ_CMP;
>>         xpt_done(ccb);
>>         break;
> 


-- 
Alexander Motin


More information about the svn-src-head mailing list