From nobody Sun Nov 24 23:25:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1720177092; cv=none; d=zohomail.com; s=zohoarc; b=kFaoRwIZ0HW8Q8Bw9Yp0gJm1i6juhnOoJw4VwAfIeEZjc8ndXyQcuAIWKS7TKrhAyUjoXQP3ILxhToQv7qdQ8Jkxn4ydJ8eXPjkypiSeXxvg7sa9ySU5j9XiZ/6SLQRB+1O5+fY0veBhFamoRFnj42uOkgjiToShKUNCEMp6jcU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1720177092; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IyZGNDRE1BJIuJp5qNhxmIBvAAaNOJEW0axHYABlNto=; b=nKbEm/1GrlwOdRS1FXTcfQ0uza7weZ33dJnelYswqyVY+08zrYzJdlo020g6yAHfGe8UUlKvSRLpiguSUuUhG1t2NNAOv/i4LXqFqmUM7sHuGbybDKjYR/SkTROPkkTIe10wWcz77ybV0RWOf183t2uKOU5yFDDzMkJgAR87V84= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1720177092070807.5296450835187; Fri, 5 Jul 2024 03:58:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sPgcq-0002uC-FB; Fri, 05 Jul 2024 06:57:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sPgcn-0002c5-9D for qemu-devel@nongnu.org; Fri, 05 Jul 2024 06:57:09 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sPgca-0006ee-6w for qemu-devel@nongnu.org; Fri, 05 Jul 2024 06:57:09 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1fafc9e07f8so9768085ad.0 for ; Fri, 05 Jul 2024 03:56:55 -0700 (PDT) Received: from n37-006-243.byted.org ([180.184.84.173]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1fac0ba60a2sm141292125ad.0.2024.07.05.03.56.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jul 2024 03:56:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1720177015; x=1720781815; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IyZGNDRE1BJIuJp5qNhxmIBvAAaNOJEW0axHYABlNto=; b=D7U/E9mwaFdMfDKq6BJ90p6/eaRpS9Dz0Jkdv6XJnmxpm/euwqsJ1Czx3Ci5ZlPniE ockPr/OP5v5E0HvWJ7fS8mpxahlUZaIgwPxsewuw8ra7A0i0Jd6ESP6vJmct6xajtOWx CBscNe481QqoG8An3CQ5oI+ebynVx3Txsi9koRCQ5avzx4sSK4sxktHX/BzV7ewph6o+ m1AEmLCyMnuSMnSs54g5wXjKzumwIXj+Hts28UZYEGUVogyONt8yc8Hasb/NaGIb0/l7 lv3fNHMEsx1IqzXAUz/cbrX8Xt6R1rgXUCKcLvW2afPPmclPtUbfNYVheApmrWb7iHMp 5b8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720177015; x=1720781815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IyZGNDRE1BJIuJp5qNhxmIBvAAaNOJEW0axHYABlNto=; b=ltqZNkVLMeqquL7I4EdUeNFUSUpxZ/ThvroXLTIuNPRYUBM6QnL6t2RT6qokUDe1pa niRlXWmF+q8Zh1w9g7GSUfcAGnDVJTMbl4BGRBZqMv+ZVLAigF2D/4cQTLFz303dh7lb 5iS7Cr1fDo+Kte4LVcWe0Gb8D/qNm4ZGo4GMlNwSUYOfXWSmGTzvl4B3ntYxRadx63DW WbB6z4fEHaXvmHqXwsy+MRPlEt1leZaMgnW3aZpc41qYqn9fs22cU5dPAJWnjkVNLEEZ xZ4jglaPCj9njdE6z/QF4rnXJITolsWYqTvvvRW3T7r9N5SV4s+crR7zDHttDdBLWaR+ svhg== X-Forwarded-Encrypted: i=1; AJvYcCUcpIVwL5z1B1yN1Vx20srCBuRDLuDsGT3lvPFoHKX/Ufq7OYDnENJLjJOwb51jPlcvaIe7WtpFeb+03KcUnp9ru0C+B0s= X-Gm-Message-State: AOJu0YzuDO4ozidhdpWKQOcfaOCKMgC4q2Qo8NkQ1vxccokRf+MqSEIN 2i1vHqN8CiKpdw3YzbYPiXRcovyyciXbrg/Q89yFs3U4jOqnnbHmSl1qk2CGVFA= X-Google-Smtp-Source: AGHT+IFAE7z0vLJyaPWMeky2CLlou97DodjnmmZ+zlY/lsANWYMrbYkNLLMlw2JGEvLe6Qi+yrDsTA== X-Received: by 2002:a17:902:d4c7:b0:1fb:4b87:6e8e with SMTP id d9443c01a7336-1fb4b877196mr11405555ad.42.1720177014874; Fri, 05 Jul 2024 03:56:54 -0700 (PDT) From: Changqi Lu To: qemu-block@nongnu.org, qemu-devel@nongnu.org Cc: kwolf@redhat.com, hreitz@redhat.com, stefanha@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, Changqi Lu Subject: [PATCH v7 08/10] hw/nvme: enable ONCS and rescap function Date: Fri, 5 Jul 2024 18:56:12 +0800 Message-Id: <20240705105614.3377694-9-luchangqi.123@bytedance.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20240705105614.3377694-1-luchangqi.123@bytedance.com> References: <20240705105614.3377694-1-luchangqi.123@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=luchangqi.123@bytedance.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bytedance.com) X-ZM-MESSAGEID: 1720177093571100017 Content-Type: text/plain; charset="utf-8" This commit enables ONCS to support the reservation function at the controller level. Also enables rescap function in the namespace by detecting the supported reservation function in the backend driver. Signed-off-by: Changqi Lu Signed-off-by: zhenwei pi Reviewed-by: Klaus Jensen Reviewed-by: Stefan Hajnoczi --- hw/nvme/ctrl.c | 3 ++- hw/nvme/ns.c | 5 +++++ include/block/nvme.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 127c3d2383..ad212de723 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -8248,7 +8248,8 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pc= i_dev) id->nn =3D cpu_to_le32(NVME_MAX_NAMESPACES); id->oncs =3D cpu_to_le16(NVME_ONCS_WRITE_ZEROES | NVME_ONCS_TIMESTAMP | NVME_ONCS_FEATURES | NVME_ONCS_DSM | - NVME_ONCS_COMPARE | NVME_ONCS_COPY); + NVME_ONCS_COMPARE | NVME_ONCS_COPY | + NVME_ONCS_RESERVATIONS); =20 /* * NOTE: If this device ever supports a command set that does NOT use = 0x0 diff --git a/hw/nvme/ns.c b/hw/nvme/ns.c index ea8db175db..a5c903d727 100644 --- a/hw/nvme/ns.c +++ b/hw/nvme/ns.c @@ -20,6 +20,7 @@ #include "qemu/bitops.h" #include "sysemu/sysemu.h" #include "sysemu/block-backend.h" +#include "block/block_int.h" =20 #include "nvme.h" #include "trace.h" @@ -33,6 +34,7 @@ void nvme_ns_init_format(NvmeNamespace *ns) BlockDriverInfo bdi; int npdg, ret; int64_t nlbas; + uint8_t blk_pr_cap; =20 ns->lbaf =3D id_ns->lbaf[NVME_ID_NS_FLBAS_INDEX(id_ns->flbas)]; ns->lbasz =3D 1 << ns->lbaf.ds; @@ -55,6 +57,9 @@ void nvme_ns_init_format(NvmeNamespace *ns) } =20 id_ns->npda =3D id_ns->npdg =3D npdg - 1; + + blk_pr_cap =3D blk_bs(ns->blkconf.blk)->bl.pr_cap; + id_ns->rescap =3D block_pr_cap_to_nvme(blk_pr_cap); } =20 static int nvme_ns_init(NvmeNamespace *ns, Error **errp) diff --git a/include/block/nvme.h b/include/block/nvme.h index 8b125f7769..9b9eaeb3a7 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -1251,7 +1251,7 @@ enum NvmeIdCtrlOncs { NVME_ONCS_DSM =3D 1 << 2, NVME_ONCS_WRITE_ZEROES =3D 1 << 3, NVME_ONCS_FEATURES =3D 1 << 4, - NVME_ONCS_RESRVATIONS =3D 1 << 5, + NVME_ONCS_RESERVATIONS =3D 1 << 5, NVME_ONCS_TIMESTAMP =3D 1 << 6, NVME_ONCS_VERIFY =3D 1 << 7, NVME_ONCS_COPY =3D 1 << 8, --=20 2.20.1