Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 01 Dec 2013 20:45:33 +0100
From:      krichy@cflinux.hu
To:        Steven Hartland <killing@multiplay.co.uk>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: Fwd: Re: ssd for zfs
Message-ID:  <1de2afcd6b5c67053095ead706eff80d@cflinux.hu>
In-Reply-To: <EA212CF8655D4EA6BD6AF9019470E5DE@multiplay.co.uk>
References:  <0b12c19b8832c72369ff7244d7231846@cflinux.hu> <81b87ca49aef7d88db1b4dbd5f7eb201@cflinux.hu> <923bc6b4aa9141e5e9a49ab76b3a18b5@cflinux.hu> <EA212CF8655D4EA6BD6AF9019470E5DE@multiplay.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

Dear scsi devs,

This short diff may add such support for ata devices:

diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c
index cc28311..75486d1 100644
--- a/sys/cam/ata/ata_da.c
+++ b/sys/cam/ata/ata_da.c
@@ -94,6 +94,7 @@ typedef enum {
  typedef enum {
         ADA_Q_NONE              = 0x00,
         ADA_Q_4K                = 0x01,
+       ADA_Q_NO_SYNC_CACHE     = 0x02,
  } ada_quirks;

  #define ADA_Q_BIT_STRING       \
@@ -1243,7 +1244,7 @@ adaregister(struct cam_periph *periph, void *arg)
         softc->disk->d_maxsize = maxio;
         softc->disk->d_unit = periph->unit_number;
         softc->disk->d_flags = 0;
-       if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE)
+       if ((softc->flags & ADA_FLAG_CAN_FLUSHCACHE) && (softc->quirks & 
ADA_Q_NO_SYNC_CACHE) == 0)
                 softc->disk->d_flags |= DISKFLAG_CANFLUSHCACHE;
         if (softc->flags & ADA_FLAG_CAN_TRIM) {
                 softc->disk->d_flags |= DISKFLAG_CANDELETE;

And with that I can add the SSD into both ata and scsi quirk list. Am I 
right?

Regards,


2013-11-29 21:35 időpontban Steven Hartland ezt írta:
> You could add a DA_Q_NO_SYNC_CACHE quirk for you device
> which will prevent the cam layer attempting to call sync but this
> will only work if its attached to a SCSI controller like an LSI there's
> no such quirk currently implemented in ATA cam layer.
> 
>    Regards
>    Steve
> ----- Original Message ----- From: <krichy@cflinux.hu>
> To: <freebsd-scsi@freebsd.org>
> Sent: Friday, November 29, 2013 8:17 PM
> Subject: Re: Fwd: Re: ssd for zfs
> 
> 
>> Dear scsi-devs,
>> 
>> It seems that my device handles the flush commands slowly. The linux 
>> code avoids issuing this if the device reports its write cache is 
>> turned off. That way my SSD works fast under linux, but infortunately 
>> slow under FreeBSD. Actually I dont understand why is it slow for the 
>> flush command, as it has power-loss-protection, maybe for such a 
>> command it really flushes everything out, dont know. But when I enable 
>> the write cache in linux also, the block layer gets knowledge of the 
>> write cache, it issues the flush commands, and it gets same slow.
>> 
>> How could this be solved?
> 
> 
> ================================================
> This e.mail is private and confidential between Multiplay (UK) Ltd.
> and the person or entity to whom it is addressed. In the event of
> misdirection, the recipient is prohibited from using, copying,
> printing or otherwise disseminating it or any information contained in
> it.
> 
> In the event of misdirection, illegible or incomplete transmission
> please telephone +44 845 868 1337
> or return the E.mail to postmaster@multiplay.co.uk.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1de2afcd6b5c67053095ead706eff80d>