Date: Thu, 6 Feb 2014 15:44:28 +0100 (CET) From: krichy@tvnetwork.hu To: Richard Kojedzinszky <krichy@cflinux.hu> Cc: freebsd-fs@freebsd.org Subject: Re: geom write cache handling Message-ID: <alpine.DEB.2.10.1402061543280.18231@krichy.tvnetwork.hu> In-Reply-To: <alpine.BSF.2.00.1402061528170.61272@pi.nmdps.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Fortunately I have my drives attached to a SAS controller, so I could add
quirks for them. They are also attached.
Regards,
Kojedzinszky Richard
Euronet Magyarorszag Informatika Zrt.
On Thu, 6 Feb 2014, Richard Kojedzinszky wrote:
> Date: Thu, 6 Feb 2014 15:36:54 +0100 (CET)
> From: Richard Kojedzinszky <krichy@cflinux.hu>
> To: freebsd-fs@freebsd.org
> Subject: geom write cache handling
>
> Dear fs team,
>
> I own an STEC SSD, which I use for ZFS SLOG. The device is broken in that if
> it gets a SCSI synchronize cache, it does something which is very slow.
> Actually with it in FreeBSD the reachable sync IOPS is around 100. When the
> device has write cache disabled, there is no need to send the SCSI
> synchronize cache commands to it, and without them I can reach 1400 IOPS. The
> device itself have power-loss-protection, so I risk no data corruption at
> all.
>
> By the way, linux behave the same, if either ata or scsi disks have their
> write cache turned off, it even does not send the command to the drive.
>
> Also, I have an Intel S3700, which is much faster, but have similar symptons.
> The drive handles synchronize cache commands much faster than STEC, maybe it
> is implemented in the drive as a simple NOP, but as for 4K sync writes a sync
> cache follows, it effectively halves the IOPS. I have it attached to a SATA2
> controller only, and with WCE disabled, and sending the sync cache to it I
> can reach around 4500 IOPS, while disabling the sync cache it can reach >9000
> IOPS.
>
> I've attached a very simple patch for the ata layer, but I dont know how to
> implement it for the scsi subsystem also.
>
> Regards,
>
> Kojedzinszky Richard
[-- Attachment #2 --]
commit 0841ac1cf35397181db98df954015409735f1fc4
Author: Charlie Root <root@pi.nmdps.net>
Date: Thu Feb 6 14:42:20 2014 +0100
Intel S3700 SSD quirks
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index cb5d41f..93bb231 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -984,6 +984,15 @@ static struct da_quirk_entry da_quirk_table[] =
},
{
/*
+ * Intel S3700 Series SSDs
+ * 4k optimised & trim only works in 4k requests + 4k aligned
+ * cache flush not needed, as power-loss-protected
+ */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "INTEL SSDSC2BA*", "*" },
+ /*quirks*/DA_Q_4K | DA_Q_NO_SYNC_CACHE
+ },
+ {
+ /*
* Kingston E100 Series SSDs
* 4k optimised & trim only works in 4k requests + 4k aligned
*/
[-- Attachment #3 --]
commit 716ccf0b030504e39ac60c24b1aaed9199be113f
Author: Charlie Root <root@pi.nmdps.net>
Date: Wed Jan 15 21:50:44 2014 +0100
Added no sync cache quirk for STEC MACH16 drives
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index 4a96981..cb5d41f 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -1062,6 +1062,14 @@ static struct da_quirk_entry da_quirk_table[] =
{ T_DIRECT, SIP_MEDIA_FIXED, "ATA", "SG9XCS2D*", "*" },
/*quirks*/DA_Q_4K
},
+ {
+ /*
+ * STEC MACH16 SATA SSDs
+ * No cache sync
+ */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "STEC MACH16*", "*" },
+ /*quirks*/DA_Q_NO_SYNC_CACHE
+ },
};
static disk_strategy_t dastrategy;
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.DEB.2.10.1402061543280.18231>
