From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1EB43CCF2DE for ; Mon, 19 Oct 2026 03:36:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9FYK1D9hAWXYaLafWV0p9wbAKSpE+RrReSAffAQBv3s=; b=IKoaTz+j3xFiSCZQHBbALpOxVb Q4FPujZV1M1a8OduxOWIvTs9IXSfm8N/14jXa3dmlIMis8ONBtASTdJcvyRh/yp69o5kcwwcc6K07 8ztdPSIXuE9Z4Lsxf7AnwXkl/UIdbBsN5KDaDKjjgJPVkn4uKgp81CqcUIqP19DsJby6lQPR3DcN3 gk++3sdBilXCrBjdTPUjf8u+U7FdRoDGOZESYqPQsPZ8Cw9qEA7y5t0jurfAadkpGND6Yu0Uc7J4i CKjVGET7x/vp/vm/hP36SKF+XYnJbSLdYkFBrBjQ1bNggUm5s9PuqQX+GMCF/srvepQjuzjr+F8Zx wXNRK4Rg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xIeB3-00000006Xiq-295e; Mon, 19 Oct 2026 03:36:45 +0000 Received: from out30-98.freemail.mail.aliyun.com ([115.124.30.98]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xIeAu-00000006Xcd-2euu for linux-nvme@lists.infradead.org; Mon, 19 Oct 2026 03:36:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1792380991; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=9FYK1D9hAWXYaLafWV0p9wbAKSpE+RrReSAffAQBv3s=; b=jAchgJwgnVSyr/2fFrvtJI8bHASMDCEdw5Al++OzhArZimlmKjOP67MRtFlikKkRhLeoq9FqR2RM4orjBiPclt2mQ7rgK3qy5WNDsKUTAWhWkzwnoSQfEWGr9wkSzTbt+XXVfQVG4gAKk3R9pYUJ+IyIPnsCm/ozFWdSicN/x1s= X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=maildocker-contentspam011083073210;MF=kanie@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0XD-ZCLl_1792380990; Received: from localhost(mailfrom:kanie@linux.alibaba.com fp:SMTPD_---0XD-ZCLl_1792380990 cluster:ay36) by smtp.aliyun-inc.com; Mon, 19 Oct 2026 11:36:30 +0800 From: Guixin Liu To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Nilay Shroff , Daniel Wagner , Hannes Reinecke Cc: linux-nvme@lists.infradead.org Subject: [PATCH 01/11] nvme: add the FDP wire structures for the I/O management send command Date: Mon, 19 Oct 2026 11:36:14 +0800 Message-ID: <20261019033624.402337-2-kanie@linux.alibaba.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20261019033624.402337-1-kanie@linux.alibaba.com> References: <20261019033624.402337-1-kanie@linux.alibaba.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261018_203636_842884_4BCD06BA X-CRM114-Status: GOOD ( 11.18 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org Add the command definition of the I/O Management Send command (opcode 0x1D) to the command opcode enum and the command union, together with its management operation, and the log page identifiers of the FDP pages that the target serves, so that initiators and targets share the same wire format. No in-kernel initiator uses the command yet; the NVMe target FDP support that consumes these structures follows in this series. Assisted-by: LLM Signed-off-by: Guixin Liu --- include/linux/nvme.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/linux/nvme.h b/include/linux/nvme.h index 91ce434a7e8d9..9141fd386012b 100644 --- a/include/linux/nvme.h +++ b/include/linux/nvme.h @@ -967,6 +967,7 @@ enum nvme_opcode { nvme_cmd_resv_acquire = 0x11, nvme_cmd_io_mgmt_recv = 0x12, nvme_cmd_resv_release = 0x15, + nvme_cmd_io_mgmt_send = 0x1d, nvme_cmd_zone_mgmt_send = 0x79, nvme_cmd_zone_mgmt_recv = 0x7a, nvme_cmd_zone_append = 0x7d, @@ -989,6 +990,7 @@ enum nvme_opcode { nvme_opcode_name(nvme_cmd_resv_acquire), \ nvme_opcode_name(nvme_cmd_io_mgmt_recv), \ nvme_opcode_name(nvme_cmd_resv_release), \ + nvme_opcode_name(nvme_cmd_io_mgmt_send), \ nvme_opcode_name(nvme_cmd_zone_mgmt_send), \ nvme_opcode_name(nvme_cmd_zone_mgmt_recv), \ nvme_opcode_name(nvme_cmd_zone_append)) @@ -1245,6 +1247,23 @@ enum { NVME_IO_MGMT_RECV_MO_RUHS = 1, }; +enum { + NVME_IO_MGMT_SEND_MO_RUH_UPDATE = 1, +}; + +struct nvme_io_mgmt_send_cmd { + __u8 opcode; + __u8 flags; + __le16 command_id; + __le32 nsid; + __le64 rsvd2[2]; + union nvme_data_ptr dptr; + __u8 mo; + __u8 rsvd10; + __le16 mos; + __le32 rsvd11[5]; +}; + struct nvme_fdp_ruh_status_desc { __le16 pid; __le16 ruhid; @@ -1416,6 +1435,9 @@ enum { NVME_LOG_FEATURES = 0x12, NVME_LOG_RMI = 0x16, NVME_LOG_FDP_CONFIGS = 0x20, + NVME_LOG_FDP_RUH_USAGE = 0x21, + NVME_LOG_FDP_STATS = 0x22, + NVME_LOG_FDP_EVENTS = 0x23, NVME_LOG_DISC = 0x70, NVME_LOG_RESERVATION = 0x80, NVME_FWACT_REPL = (0 << 3), @@ -1437,6 +1459,7 @@ struct nvme_supported_features_log { enum { NVME_FIS_FSUPP = 1 << 0, + NVME_FIS_EGSCPE = 1 << 23, NVME_FIS_NSCPE = 1 << 20, NVME_FIS_CSCPE = 1 << 21, }; @@ -2016,6 +2039,7 @@ struct nvme_command { struct nvme_dbbuf dbbuf; struct nvme_directive_cmd directive; struct nvme_io_mgmt_recv_cmd imr; + struct nvme_io_mgmt_send_cmd ims; }; }; -- 2.43.7