From nobody Wed Oct 23 01:29:24 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=1728667692; cv=none; d=zohomail.com; s=zohoarc; b=LF12OMEyZ5GV5AtxVMSy4awK0BR2fzzn3xVYVCMAjTlmDogbmB3CMrlrPCxABajhEvdRNkyMk1hNRt3MKBwkMvnvEoq+wwv84vx+nHKJBIuJrAMgzU/LkFLpFLkriw96rAN9p4xp5mpfdygKidVKjaYIk3rYvirAI+bKEJpcMfo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1728667692; 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=FpXCvHD2Qslc03OqNFilh7DiBfbBLmsoxBWva+ViCzE=; b=Ao8oAxHBJw/egpEvt3JDOsjrm39x2TLqxUneH5D/Mn5TZCzXReyghU274OYIlGClH6Z8Xw3o5sDZ5GlmcHOLf0pFvDz2ff7LoUPrScfWx6VnTXni0oj5Cckk/btPMBRveeftb302XIfbXXxSnu1D5RoP7CDVsjb24HYlUIVlr/4= 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 1728667692667367.7737256103902; Fri, 11 Oct 2024 10:28:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1szJF9-00047I-UT; Fri, 11 Oct 2024 13:16:00 -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 1szJ7h-0003Vw-DO for qemu-devel@nongnu.org; Fri, 11 Oct 2024 13:08:18 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1szEWU-0004vk-LR for qemu-devel@nongnu.org; Fri, 11 Oct 2024 08:13:36 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-20cb7088cbcso184095ad.0 for ; Fri, 11 Oct 2024 05:13:33 -0700 (PDT) Received: from TF4D9JK212.bytedance.net ([139.177.225.232]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20c8bc13551sm22569305ad.88.2024.10.11.05.13.26 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 11 Oct 2024 05:13:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1728648812; x=1729253612; 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=FpXCvHD2Qslc03OqNFilh7DiBfbBLmsoxBWva+ViCzE=; b=Dwy+yxtU18dt5DAGadYaPTr/wzxmKcyyaWdemJiYVYv87cye8AoUHHLchZlymeMLN4 X0EDXftvvWXuXIuZE1kKRUu8dTkRf2DbpgqjNwVVFWZNe8AMDkG2FMNpqmzEmvVzeFSb Mmsx1dF+LrOAhugNibLkz+kK3o6dIJvB8fHaW49kpo1lPPadCnQC8gPtVZa4APzJEc// X9x087ih7LiMaxndJkId74NChpqx2sPB7rugqV7hrmjA22KCxYCBYwNtUfBDgfzUHPbT W+Vo+VIwo18eND9fp4FGltcpA0eYhusLdErQYgVFO26a8eYyk5yMhVHqvSltzb+Nt54E hvZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728648812; x=1729253612; 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=FpXCvHD2Qslc03OqNFilh7DiBfbBLmsoxBWva+ViCzE=; b=ao3QevUAT/MwOEs8m7LqjarbI0l/ZNsVlgaccQY6TUleIrIPsfz9FDrGTwZD5lh/zC xJBJLOBE13lVPAiUj1JH90lD9+FxJakN8Izjkf5ZiU9X52U0w+TLQGwT347tOaajYL0D eMk0pjKm5lgQO/202FNBL8+FZufWLoI2/a745vZWqxoXwYLYRlx0HIf/C5JFFWkYsbxV P1GLkOTTzTz1lnOkYGpvlJQLW8zihKjLEJq9+HrfNqUn/kSRwIgQUpFSKfg5waIdIRpV 1UfyPfipLV/VG2OuQ5guFqRyp6WD3q5LlrUYQSZtZqZTNDADIrz7OHfqYsULSrgE+fzT nN0A== X-Forwarded-Encrypted: i=1; AJvYcCWVVq0ldkd5CbKGWvXMk3B1jorCQ9HAixM/hzVItj4oDyC+eJLabZPD5JVOmHiq5pv4zd2tQPFWrg4u@nongnu.org X-Gm-Message-State: AOJu0YxdQ+eEaeXPvp9xndDs4MxRm4/sKw5gGuYJ3p0BxPsEAePr9t6u QD6dcIo4pmcGmJCViR329PesemM6hrJRd67N66Jl6txuOPRWS4tdQ7IaEzyYIaI= X-Google-Smtp-Source: AGHT+IHtoTboo/18qIKh7A8Q82OQyAnCfJw6dAMf5Lb4aeVp0/+CbmIQAMSRWcOfy3Ymt/5ZVsDzfw== X-Received: by 2002:a17:902:e5ca:b0:20c:805a:524 with SMTP id d9443c01a7336-20ca16be1b7mr27660885ad.39.1728648812157; Fri, 11 Oct 2024 05:13:32 -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, k.jensen@samsung.com, Changqi Lu Subject: [PATCH v14 08/10] hw/nvme: enable ONCS and rescap function Date: Fri, 11 Oct 2024 20:12:29 +0800 Message-Id: <20241011121231.18333-9-luchangqi.123@bytedance.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20241011121231.18333-1-luchangqi.123@bytedance.com> References: <20241011121231.18333-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::629; envelope-from=luchangqi.123@bytedance.com; helo=mail-pl1-x629.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, RCVD_IN_DNSWL_NONE=-0.0001, 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: 1728667694929116600 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. Reviewed-by: Klaus Jensen Signed-off-by: Changqi Lu Signed-off-by: zhenwei pi 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