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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to