All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonas Pfefferle <pepperjo at japf.ch>
To: spdk@lists.01.org
Subject: Re: [SPDK] NVMe command ordering
Date: Tue, 27 Mar 2018 09:56:43 +0200	[thread overview]
Message-ID: <ximss-49757963@switchplus-mail.ch> (raw)
In-Reply-To: 622F4407872BA447A16110F65453358C0764E8480338@FMSAMAIL.fmsa.local

[-- Attachment #1: Type: text/plain, Size: 4485 bytes --]

Thanks for the notes/clarifications. Interesting paper.

Jonas

  On Fri, 23 Mar 2018 17:08:47 -0700
  Paul Von-Stamwitz <PVonStamwitz(a)us.fujitsu.com> wrote:
> This is purely FYI:
> 
> Interesting paper from FAST '18. 
> 
> Barrier-Enabled IO Stack for Flash Storage
> https://www.usenix.org/conference/fast18/presentation/won
> 
> -Paul
> 
> -----Original Message-----
>From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Marushak, 
>Nathan
> Sent: Friday, March 23, 2018 9:29 AM
> To: Storage Performance Development Kit
> Subject: Re: [SPDK] NVMe command ordering
> 
> Hey Jonas,
> 
> Looks like you got the answer here hopefully, but I wanted to 
>provide 1 additional point of clarity. For HDD or SSD (or any other 
>type of storage media), it's always been incumbent upon the 
>application (most notably the file system) to provide the checks and 
>balances to ensure ordering.
> 
> Thanks,
> Nate
> 
>> -----Original Message-----
>> From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, 
>>Paul 
>> E
>> Sent: Friday, March 23, 2018 9:23 AM
>> To: Storage Performance Development Kit <spdk(a)lists.01.org>; Andrey 
>> Kuzmin <andrey.v.kuzmin(a)gmail.com>
>> Subject: Re: [SPDK] NVMe command ordering
>> 
>> Yup
>> 
>> -----Original Message-----
>> From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Jonas 
>> Pfefferle
>> Sent: Friday, March 23, 2018 9:21 AM
>> To: Storage Performance Development Kit <spdk(a)lists.01.org>; Andrey 
>> Kuzmin <andrey.v.kuzmin(a)gmail.com>
>> Subject: Re: [SPDK] NVMe command ordering
>> 
>> One other thing I stumbled upon:
>> 7.1 "There are no ordering restrictions for completions to the 
>>host."
>> 
>> Does that mean if, for example, command A and B were executed in 
>>order 
>> A,B they do not have to complete in this order on the CQ?
>> 
>> Thanks,
>> Jonas
>> 
>>   On Fri, 23 Mar 2018 12:59:54 +0100
>>   "Jonas Pfefferle" <pepperjo(a)japf.ch> wrote:
>> > Thanks!
>> >
>> >  On Fri, 23 Mar 2018 11:25:26 +0000
>> >  Andrey Kuzmin <andrey.v.kuzmin(a)gmail.com> wrote:
>> >> On Fri, Mar 23, 2018, 12:04 Jonas Pfefferle <pepperjo(a)japf.ch>
>> >>wrote:
>> >>
>> >>> Hi @all,
>> >>>
>> >>> Can anyone clarify this for me:
>> >>> NVMe spec 6.3 Command Ordering Requirements  "For all commands 
>> >>>which are not part of a fused operation (refer to section  4.10), 
>> >>>or for which the write size is greater than AWUN, each command is 
>> 
>> >>>processed as an independent entity without reference to other 
>> >>>commands submitted to the same I/O Submission Queue or to 
>>commands 
>> >>>submitted to  other  I/O Submission Queues"
>> >>>
>> >>> So writes <= AWUN size are atomic but there is no ordering 
>>between 
>> >>>the  commands, e.g. write command A issued before write command B 
>> >>>to the same  LBA  can be executed in order AB or BA, the only 
>>thing 
>> >>>guaranteed is that they  are executed atomically? And there is no 
>> >>>way to enforce ordering except on  the host side?
>> >>>
>> >>
>> >> Right, that's exactly what the spec says in that same paragraph 
>>you 
>> >>quote
>> >> above: "If there are ordering requirements between these 
>>commands, 
>> >>host  software or the associated application is required to 
>>enforce 
>> >>that ordering  above the level of the controller. " (1.3a, P. 
>>179).
>> >>
>> >> Regards,
>> >> Andrey
>> >>
>> >>
>> >>> Regards,
>> >>> Jonas
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> SPDK mailing list
>> >>> SPDK(a)lists.01.org
>> >>> https://lists.01.org/mailman/listinfo/spdk
>> >>>
>> >> --
>> >>
>> >> Regards,
>> >> Andrey
>> >
>> >
>> > _______________________________________________
>> > SPDK mailing list
>> > SPDK(a)lists.01.org
>> > https://lists.01.org/mailman/listinfo/spdk
>> 
>> 
>> _______________________________________________
>> SPDK mailing list
>> SPDK(a)lists.01.org
>> https://lists.01.org/mailman/listinfo/spdk
>> _______________________________________________
>> SPDK mailing list
>> SPDK(a)lists.01.org
>> https://lists.01.org/mailman/listinfo/spdk
> _______________________________________________
> SPDK mailing list
> SPDK(a)lists.01.org
> https://lists.01.org/mailman/listinfo/spdk
> _______________________________________________
> SPDK mailing list
> SPDK(a)lists.01.org
> https://lists.01.org/mailman/listinfo/spdk



             reply	other threads:[~2018-03-27  7:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-27  7:56 Jonas Pfefferle [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-03-24  0:08 [SPDK] NVMe command ordering Paul Von-Stamwitz
2018-03-23 16:29 Marushak, Nathan
2018-03-23 16:23 Luse, Paul E
2018-03-23 16:21 Jonas Pfefferle
2018-03-23 11:59 Jonas Pfefferle
2018-03-23 11:25 Andrey Kuzmin
2018-03-23  9:04 Jonas Pfefferle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ximss-49757963@switchplus-mail.ch \
    --to=spdk@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.