Patchwork [2/2] SATA: enable flush non-queueable

login
register
mail settings
Submitter Shaohua Li
Date April 19, 2011, 8:44 a.m.
Message ID <1303202689.3981.217.camel@sli10-conroe>
Download mbox | patch
Permalink /patch/91938/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Shaohua Li - April 19, 2011, 8:44 a.m.
Set SATA queue flush non-queueable. Running below test with a AHCI controller and
ext4 filesystem, below patch gives around ~5% speedup.
sysbench --test fileio --file-test-mode rndrw --num-threads 16 \
--file-total-size 2500MB --max-requests 150000 --max-time 3000

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
---
 drivers/ata/libata-scsi.c |    2 ++
 1 file changed, 2 insertions(+)



--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

Index: linux/drivers/ata/libata-scsi.c
===================================================================
--- linux.orig/drivers/ata/libata-scsi.c	2011-04-19 14:54:37.000000000 +0800
+++ linux/drivers/ata/libata-scsi.c	2011-04-19 14:58:54.000000000 +0800
@@ -3424,7 +3424,9 @@  void ata_scsi_scan_host(struct ata_port
 			sdev = __scsi_add_device(ap->scsi_host, channel, id, 0,
 						 NULL);
 			if (!IS_ERR(sdev)) {
+				struct request_queue *q = sdev->request_queue;
 				dev->sdev = sdev;
+				blk_set_queue_flush_queueable(q, false);
 				scsi_device_put(sdev);
 			} else {
 				dev->sdev = NULL;