On Mon, 2016-08-15 at 22:41 -0300, Helen Koike wrote:

>  
> +struct nvme_doorbell_memory {
> +     __u8                    opcode;
> +     __u8                    flags;
> +     __u16                   command_id;
> +     __u32                   rsvd1[5];
> +     __le64                  prp1;
> +     __le64                  prp2;
> +     __u32                   rsvd12[6];
> +};
> +
>  struct nvme_command {
>       union {
>               struct nvme_common_command common;
> @@ -845,6 +858,7 @@ struct nvme_command {
>               struct nvmf_connect_command connect;
>               struct nvmf_property_set_command prop_set;
>               struct nvmf_property_get_command prop_get;
> +             struct nvme_doorbell_memory doorbell_memory;
>       };
>  };

This looks like a new NVMe command being introduced, not found in the
latest NVMe specs (NVMe 1.2.1 spec or NVMe-over-Fabrics 1.0 spec)?

This is a big NACK, the command needs to be part of the NVMe standard
before adding it to the NVMe code base (this is exactly how NVMe-over-
Fabrics standard got implemented).  I would bring your proposal to
nvmexpress.org.

Jay


>  
> @@ -934,6 +948,9 @@ enum {
>       /*
>        * Media and Data Integrity Errors:
>        */
> +#ifdef CONFIG_NVME_VDB
> +     NVME_SC_DOORBELL_MEMORY_INVALID = 0x1C0,
> +#endif
>       NVME_SC_WRITE_FAULT             = 0x280,
>       NVME_SC_READ_ERROR              = 0x281,
>       NVME_SC_GUARD_CHECK             = 0x282,

Reply via email to