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-all
mailing list