Skip site navigation (1)Skip section navigation (2)
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>