Fwd: Re: ssd for zfs
krichy at cflinux.hu
krichy at cflinux.hu
Sun Dec 1 19:45:44 UTC 2013
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 at cflinux.hu>
> To: <freebsd-scsi at 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 at multiplay.co.uk.
More information about the freebsd-scsi
mailing list