All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Changqi Lu <luchangqi.123@bytedance.com>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, kwolf@redhat.com,
	hreitz@redhat.com, fam@euphon.net, ronniesahlberg@gmail.com,
	pbonzini@redhat.com, pl@dlhnet.de, kbusch@kernel.org,
	its@irrelevant.dk, foss@defmacro.it, philmd@linaro.org,
	pizhenwei@bytedance.com
Subject: Re: [PATCH v6 06/10] block/nvme: add reservation command protocol constants
Date: Thu, 4 Jul 2024 19:51:01 +0200	[thread overview]
Message-ID: <20240704175101.GF2529519@fedora.redhat.com> (raw)
In-Reply-To: <20240613071327.2498953-7-luchangqi.123@bytedance.com>

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

On Thu, Jun 13, 2024 at 03:13:23PM +0800, Changqi Lu wrote:
> Add constants for the NVMe persistent command protocol.
> The constants include the reservation command opcode and
> reservation type values defined in section 7 of the NVMe
> 2.0 specification.
> 
> Signed-off-by: Changqi Lu <luchangqi.123@bytedance.com>
> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
> ---
>  include/block/nvme.h | 61 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
> 
> diff --git a/include/block/nvme.h b/include/block/nvme.h
> index bb231d0b9a..da6ccb0f3b 100644
> --- a/include/block/nvme.h
> +++ b/include/block/nvme.h
> @@ -633,6 +633,10 @@ enum NvmeIoCommands {
>      NVME_CMD_WRITE_ZEROES       = 0x08,
>      NVME_CMD_DSM                = 0x09,
>      NVME_CMD_VERIFY             = 0x0c,
> +    NVME_CMD_RESV_REGISTER      = 0x0d,
> +    NVME_CMD_RESV_REPORT        = 0x0e,
> +    NVME_CMD_RESV_ACQUIRE       = 0x11,
> +    NVME_CMD_RESV_RELEASE       = 0x15,
>      NVME_CMD_IO_MGMT_RECV       = 0x12,

Keep NVME_CMD_IO_MGMT_RECV (0x12) before NVME_CMD_RESV_RELEASE (0x15) in
sorted order?

>      NVME_CMD_COPY               = 0x19,
>      NVME_CMD_IO_MGMT_SEND       = 0x1d,
> @@ -641,6 +645,63 @@ enum NvmeIoCommands {
>      NVME_CMD_ZONE_APPEND        = 0x7d,
>  };
>  
> +typedef enum {
> +    NVME_RESV_REGISTER_ACTION_REGISTER      = 0x00,
> +    NVME_RESV_REGISTER_ACTION_UNREGISTER    = 0x01,
> +    NVME_RESV_REGISTER_ACTION_REPLACE       = 0x02,
> +} NvmeReservationRegisterAction;
> +
> +typedef enum {
> +    NVME_RESV_RELEASE_ACTION_RELEASE        = 0x00,
> +    NVME_RESV_RELEASE_ACTION_CLEAR          = 0x01,
> +} NvmeReservationReleaseAction;
> +
> +typedef enum {
> +    NVME_RESV_ACQUIRE_ACTION_ACQUIRE            = 0x00,
> +    NVME_RESV_ACQUIRE_ACTION_PREEMPT            = 0x01,
> +    NVME_RESV_ACQUIRE_ACTION_PREEMPT_AND_ABORT  = 0x02,
> +} NvmeReservationAcquireAction;
> +
> +typedef enum {
> +    NVME_RESV_WRITE_EXCLUSIVE               = 0x01,
> +    NVME_RESV_EXCLUSIVE_ACCESS              = 0x02,
> +    NVME_RESV_WRITE_EXCLUSIVE_REGS_ONLY     = 0x03,
> +    NVME_RESV_EXCLUSIVE_ACCESS_REGS_ONLY    = 0x04,
> +    NVME_RESV_WRITE_EXCLUSIVE_ALL_REGS      = 0x05,
> +    NVME_RESV_EXCLUSIVE_ACCESS_ALL_REGS     = 0x06,
> +} NvmeResvType;
> +
> +typedef enum {
> +    NVME_RESV_PTPL_NO_CHANGE = 0x00,
> +    NVME_RESV_PTPL_DISABLE   = 0x02,
> +    NVME_RESV_PTPL_ENABLE    = 0x03,
> +} NvmeResvPTPL;
> +
> +typedef enum NVMEPrCap {
> +    /* Persist Through Power Loss */
> +    NVME_PR_CAP_PTPL = 1 << 0,
> +    /* Write Exclusive reservation type */
> +    NVME_PR_CAP_WR_EX = 1 << 1,
> +    /* Exclusive Access reservation type */
> +    NVME_PR_CAP_EX_AC = 1 << 2,
> +    /* Write Exclusive Registrants Only reservation type */
> +    NVME_PR_CAP_WR_EX_RO = 1 << 3,
> +    /* Exclusive Access Registrants Only reservation type */
> +    NVME_PR_CAP_EX_AC_RO = 1 << 4,
> +    /* Write Exclusive All Registrants reservation type */
> +    NVME_PR_CAP_WR_EX_AR = 1 << 5,
> +    /* Exclusive Access All Registrants reservation type */
> +    NVME_PR_CAP_EX_AC_AR = 1 << 6,
> +
> +    NVME_PR_CAP_ALL = (NVME_PR_CAP_PTPL |
> +                      NVME_PR_CAP_WR_EX |
> +                      NVME_PR_CAP_EX_AC |
> +                      NVME_PR_CAP_WR_EX_RO |
> +                      NVME_PR_CAP_EX_AC_RO |
> +                      NVME_PR_CAP_WR_EX_AR |
> +                      NVME_PR_CAP_EX_AC_AR),
> +} NvmePrCap;
> +
>  typedef struct QEMU_PACKED NvmeDeleteQ {
>      uint8_t     opcode;
>      uint8_t     flags;
> -- 
> 2.20.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2024-07-04 19:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-13  7:13 [PATCH v6 00/10] Support persistent reservation operations Changqi Lu
2024-06-13  7:13 ` [PATCH v6 01/10] block: add persistent reservation in/out api Changqi Lu
2024-06-26 20:05   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 02/10] block/raw: add persistent reservation in/out driver Changqi Lu
2024-06-26 20:46   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 03/10] scsi/constant: add persistent reservation in/out protocol constants Changqi Lu
2024-06-26 20:53   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 04/10] scsi/util: add helper functions for persistent reservation types conversion Changqi Lu
2024-06-26 20:55   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 05/10] hw/scsi: add persistent reservation in/out api for scsi device Changqi Lu
2024-07-04 16:46   ` Stefan Hajnoczi
2024-07-04 18:28   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 06/10] block/nvme: add reservation command protocol constants Changqi Lu
2024-07-04 17:51   ` Stefan Hajnoczi [this message]
2024-06-13  7:13 ` [PATCH v6 07/10] hw/nvme: add helper functions for converting reservation types Changqi Lu
2024-06-13  7:13 ` [PATCH v6 08/10] hw/nvme: enable ONCS and rescap function Changqi Lu
2024-07-04 18:20   ` Stefan Hajnoczi
2024-07-05 10:22     ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 09/10] hw/nvme: add reservation protocal command Changqi Lu
2024-07-04 18:31   ` Stefan Hajnoczi
2024-06-13  7:13 ` [PATCH v6 10/10] block/iscsi: add persistent reservation in/out driver Changqi Lu
2024-07-04 19:24   ` Stefan Hajnoczi
2024-06-19  2:49 ` PING: [PATCH v6 00/10] Support persistent reservation operations 卢长奇
     [not found] ` <3c9b7bb9-cb69-49c4-b7cf-5503baeee09d@bytedance.com>
2024-06-26 11:39   ` 卢长奇
2024-06-27  2:54 ` 卢长奇
     [not found] ` <8e6a16e7-21df-40ec-93d7-1b41fd0f50a4@bytedance.com>
2024-07-04  3:27   ` 卢长奇

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=20240704175101.GF2529519@fedora.redhat.com \
    --to=stefanha@redhat.com \
    --cc=fam@euphon.net \
    --cc=foss@defmacro.it \
    --cc=hreitz@redhat.com \
    --cc=its@irrelevant.dk \
    --cc=kbusch@kernel.org \
    --cc=kwolf@redhat.com \
    --cc=luchangqi.123@bytedance.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pizhenwei@bytedance.com \
    --cc=pl@dlhnet.de \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=ronniesahlberg@gmail.com \
    /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.