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

From: Shaohua Li
Date: Tue Apr 19 2011 - 04:45:17 EST



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@xxxxxxxxx>
---
drivers/ata/libata-scsi.c | 2 ++
1 file changed, 2 insertions(+)

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;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/