Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Sep 2009 17:54:44 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Scott Long <scottl@samsco.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r196777 - head/sys/dev/ahci
Message-ID:  <4A9FD8B4.2080605@FreeBSD.org>
In-Reply-To: <1872D962-9297-4C45-9F73-4BB823C49D74@samsco.org>
References:  <200909031237.n83CbIgk032551@svn.freebsd.org> <1872D962-9297-4C45-9F73-4BB823C49D74@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A9FD8B4.2080605>