From nobody Sat May 30 17:44:42 2026 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=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1780058254; cv=none; d=zohomail.com; s=zohoarc; b=QuJLGzJ94xHbhrbwEpgeeCgMUjVnTPUU5/WJ596ML90depZGPpfsZPpCQq2xMwH3riyLtAmVoCeJ02JJiE9haEaPBMFtNK8TkXjgSxfPiTJA92Lp52ONxErmDvk+Of89HIswy8xLfX6LTfmXN8ls22aSLPBeVeI4Cuqet8wWRr8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780058254; h=Content-Type: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=WQz4JUNQBgR2v4OWJ/FkcnTnXqaW5HNRpJvgw36RX6Y=; b=O1Soo++dwhm84s/qRxPDl+7HNEtvQJa1/BVA063BcyvaDpVT5I6BwO3q9n2Xv18WmezSE0LGM9daliHmsZh15e17GQ44Jfxrm1o5j3NqpNBFzMaOmBuyJ8F85DQKsoWMnYLTKZPKFQ3C8/VM+oI6vEu8UW4f05YNsSa6DgDqES8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780058254647879.0511851769153; Fri, 29 May 2026 05:37:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSwSI-0006S6-T6; Fri, 29 May 2026 08:36:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSG-0006RY-FY; Fri, 29 May 2026 08:36:48 -0400 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSE-0002tR-Q4; Fri, 29 May 2026 08:36:48 -0400 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id C7C7E6059D; Fri, 29 May 2026 12:36:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5FE841F00898; Fri, 29 May 2026 12:36:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780058204; bh=WQz4JUNQBgR2v4OWJ/FkcnTnXqaW5HNRpJvgw36RX6Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=MolJnqNDSTeLTvxvMO5wD8Xb0CjG27eNqy8ckcZ+Q5B0VqIUnXrT5/4nbEyv1xyhA A2yV6uHDNJ5DHJrI6qJwyA3R4kcu09gh+qXUunBWTo6TzMihsP1CFPAC44Gq73Db5m KVD9xBu3lAha2/jVaJ4o/uDH1weig2iX0/dAqgXktJTOUXkRp0d8A5ruTDWwENeyUD ME4JKXOdAcCvkRhGWUWt/gWQKTolHceS89lz1UScklcZKmYnSDLlv6a8ehTDV28LhE 8uuSb1YdOoZlzwQNXLrit6HRhnJQSDh0QTpIo0lpkft3YjUCE+HQ3+H7o9sLUTPmRH T14Y71ywBenlA== From: Daniel Gomez Date: Fri, 29 May 2026 14:36:13 +0200 Subject: [PATCH 1/3] dma-helpers: chunk dma_blk_cb at IOV_MAX MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260529-align-nvme-mdts-with-linux-v1-1-221d4d21ab43@samsung.com> References: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> In-Reply-To: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org, Daniel Gomez , Daniel Gomez , GOST , Klaus Jensen X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1780058199; l=1096; i=da.gomez@samsung.com; s=20240621; h=from:subject:message-id; bh=i+thYfVMMwlOjiW9+ImbKV4xHn4qvhdkMyleLRHLwU0=; b=6cGuoBEpTGoD9x7hW4KRX2saeYNTxf5nEhu2+VD141ubAhlDMlifDCTFzEpvPLiqOE0tdboNj vEn2twVSvKvAn0p2RtR9rGzQdPXvdpKPHI56tm7EUoBnwYFxLPxbDdg X-Developer-Key: i=da.gomez@samsung.com; a=ed25519; pk=BqYk31UHkmv0WZShES6pIZcdmPPGay5LbzifAdZ2Ia4= 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=lists1p.gnu.org; Received-SPF: pass client-ip=2600:3c04:e001:324:0:1991:8:25; envelope-from=da.gomez@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @kernel.org) X-ZM-MESSAGEID: 1780058257422154100 From: Daniel Gomez dma_blk_cb() submits dbs->iov to io_func() in one shot, so callers must keep dbs->iov.niov below IOV_MAX or the host preadv()/pwritev() rejects the call. Break the accumulation loop when niov reaches IOV_MAX. The existing re-entry path resumes mapping and submits a follow-up chunk under the same AIOCB, so callers no longer carry that constraint. Suggested-by: Klaus Jensen Signed-off-by: Daniel Gomez --- system/dma-helpers.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/dma-helpers.c b/system/dma-helpers.c index 0d592f64680..c7c0d7aa1b5 100644 --- a/system/dma-helpers.c +++ b/system/dma-helpers.c @@ -156,8 +156,9 @@ static void dma_blk_cb(void *opaque, int ret) } } } - if (!mem) + if (!mem || dbs->iov.niov >=3D IOV_MAX) { break; + } qemu_iovec_add(&dbs->iov, mem, cur_len); dbs->sg_cur_byte +=3D cur_len; if (dbs->sg_cur_byte =3D=3D dbs->sg->sg[dbs->sg_cur_index].len) { --=20 2.53.0 From nobody Sat May 30 17:44:42 2026 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=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1780058238; cv=none; d=zohomail.com; s=zohoarc; b=CuGs177BUrUQ+orkcTo04Ht3YAiNDcb9/MyyitmIQ0tSM7sFtzd+jztVXRU5dLxFU+YyHb9F/v2S48qCbx7EIhDs5AiPa61K9FdRu/bvEl9a8sBW29+L9Q3AKXuDSV3h8D8PofENVFCxMWEw1j7waQ9D5mqvsTX0ifceAXdti2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780058238; h=Content-Type: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=vWX+aCGUN0nyDUMTOBtZsMjzDDdS+F7PiXVMD31IlEY=; b=moxyvXJL9v+PUaigGfu1gUh/JUL52GRgr4mRahiy+LAArI8VmDrB9x3J8DxEAjBg+qNOVgMPv0Fu9YptZBOar3VPMbdL4PyJCw7AcALESY08ss4nC9Olp3Yw4Q/Ufulxkxr4zh1UTcu+Rr/KRTjS7AMYluDFLb9Y13kVghykEr0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780058238830900.5692996774603; Fri, 29 May 2026 05:37:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSwSJ-0006SH-LR; Fri, 29 May 2026 08:36:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSH-0006Rm-N5; Fri, 29 May 2026 08:36:50 -0400 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSG-0002vL-9E; Fri, 29 May 2026 08:36:49 -0400 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 5BE1760236; Fri, 29 May 2026 12:36:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E841C1F00893; Fri, 29 May 2026 12:36:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780058207; bh=vWX+aCGUN0nyDUMTOBtZsMjzDDdS+F7PiXVMD31IlEY=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=BorNcytenQrDq2hvTfcUGFgnqFmEFLcfuM1qisKXQ+Gsj7V6qBexIb65VMIYX0uwD LZ+GDolByrcAF+xq304ttXbFPtFnyb/tbHLZDZPjAoAj/nF0LTENB38xAM/nQKuQ5j XXKT9lEI6NhkExRYDnJ1GCD9qiQV8wKMRa/Nr4bf2W/pVUt+EJQ1fJ9LdRyPvAHjeD tSP+jx0kuSPX/KOuohf41FwNhzGIwBnsQjINWegBwVU+g7twHBax6dd7S8bddyPEWy uPcn+gW44dzK3C1++HVNOlieiPrhoqtZVLSgo1qva139q6JtawBD/nti7TOBgyCvSL 2A0RbB5heNVeg== From: Daniel Gomez Date: Fri, 29 May 2026 14:36:14 +0200 Subject: [PATCH 2/3] hw/nvme: drop DMA-path IOV_MAX guard MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260529-align-nvme-mdts-with-linux-v1-2-221d4d21ab43@samsung.com> References: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> In-Reply-To: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org, Daniel Gomez , Daniel Gomez , GOST , Klaus Jensen X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1780058199; l=757; i=da.gomez@samsung.com; s=20240621; h=from:subject:message-id; bh=C5o8/kA1EvnBtxf5b9vk3fcSsWWupu+9S2HofLXNrhQ=; b=ckv22RzTXhG5G4yzWG4jdVwav36JSNiGFAE5fQ77LRsZIOy/RiFX3IBT1Yr7ppweBuBSElLpi uw5T/lI9WZdClO5gCADecvPSPiDXYYbGTmmmsbIk12pRcdJJDolPDEd X-Developer-Key: i=da.gomez@samsung.com; a=ed25519; pk=BqYk31UHkmv0WZShES6pIZcdmPPGay5LbzifAdZ2Ia4= 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=lists1p.gnu.org; Received-SPF: pass client-ip=2600:3c04:e001:324:0:1991:8:25; envelope-from=da.gomez@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @kernel.org) X-ZM-MESSAGEID: 1780058240272158500 From: Daniel Gomez dma_blk_cb() now chunks at IOV_MAX, so the per-mapping cap on sg->qsg in nvme_map_addr() is redundant. Drop it. Suggested-by: Klaus Jensen Signed-off-by: Daniel Gomez --- hw/nvme/ctrl.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index be6c7028cb5..00995d9808f 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -866,10 +866,6 @@ static uint16_t nvme_map_addr(NvmeCtrl *n, NvmeSg *sg,= hwaddr addr, size_t len) return NVME_INVALID_USE_OF_CMB | NVME_DNR; } =20 - if (sg->qsg.nsg + 1 > IOV_MAX) { - goto max_mappings_exceeded; - } - qemu_sglist_add(&sg->qsg, addr, len); =20 return NVME_SUCCESS; --=20 2.53.0 From nobody Sat May 30 17:44:42 2026 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=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1780058238; cv=none; d=zohomail.com; s=zohoarc; b=RQxebZXP5p7XWAAynZjuIZOKAx9OfUhiCJlZoffbDAYXHduz6z2PV3WHeAREErq/BVOclwEU1yhDy54707QsIXZ81IBNkH5MGALGIHEMPE8sN653LVETX4eWyZsyp29cMqIF3lh9veVp8Xbb8Phdp5OBmSS7koR5RvRkU12po2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780058238; h=Content-Type: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=dTgtZJYkbw9Dxl5/Ovcn0CYfHPf3JZL7gwLv4z0RU+I=; b=OLvdHRL3CCdR7JcwmvvNaxIJScNxV4vCVVofUVOH/0mUJ9DKJpafi6Cc59M4p4Ef5prnWQP76QKdKIenw4rqAShcNT3+a9A7fRZykJlpMBT2Qa2wn/ZLxLBHYcAZLA65flpJP6TdzfLBz29ZhMnX9Twk14eSu4xE5vZulfyibkM= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780058238835361.9491472651747; Fri, 29 May 2026 05:37:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wSwSO-0006T9-Ba; Fri, 29 May 2026 08:36:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSL-0006Sr-3O; Fri, 29 May 2026 08:36:53 -0400 Received: from sea.source.kernel.org ([172.234.252.31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wSwSJ-00031C-Eq; Fri, 29 May 2026 08:36:52 -0400 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 9188C42B8A; Fri, 29 May 2026 12:36:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C6E71F00893; Fri, 29 May 2026 12:36:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780058209; bh=dTgtZJYkbw9Dxl5/Ovcn0CYfHPf3JZL7gwLv4z0RU+I=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=eWxTY4eejRltuNtns1XrkbHCqhlZQdOPKoVutTZHDLY/guey3hAFjkAoYBURhyn0M I1UykN0kKffoBdjoCZI6BCstD4mL7+uE+h+OfhMByBPUrxXoBn11tow++g9pCqDqJ+ 8p9v66x6EUJzzDxEWVXx+kdLmyfGfCHXWyrd83eQAetvIOI3KA5doAmL+mNHmHOKlG ktqRnVnKxxHBobVWWiaj3mY10YzLLLSe4VS/8mtRUXVp6czqHF3Dx4iNdeZBwbSlag vN8TFZS7g6xkIujPLT0uIkIdv3RWjr64FdvLxAuXCPuLbVaJsnLewWzCALwDNa039j JwVNVFd91f7Ow== From: Daniel Gomez Date: Fri, 29 May 2026 14:36:15 +0200 Subject: [PATCH 3/3] hw/nvme: allow mdts up to 8192 KiB MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260529-align-nvme-mdts-with-linux-v1-3-221d4d21ab43@samsung.com> References: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> In-Reply-To: <20260529-align-nvme-mdts-with-linux-v1-0-221d4d21ab43@samsung.com> To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Peter Xu , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Keith Busch , Klaus Jensen , Jesper Devantier , qemu-block@nongnu.org, Daniel Gomez , Daniel Gomez , GOST X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1780058199; l=2311; i=da.gomez@samsung.com; s=20240621; h=from:subject:message-id; bh=960pdnVnwcQY0HoV2wasXfG55Ann+JslDud+rCzOWuc=; b=4w9DnUh6eDzRhYXlZX+729kaBVRl5WCtZ/0BOQx2PxWr0g0ooQMaZbl/KgH/IGB3ox3J0oBIx RUUX4TCgKGbDlEwmBY5b0dPVCe6H9yR2hUPxFg8gMFqcxd6efCHs+jT X-Developer-Key: i=da.gomez@samsung.com; a=ed25519; pk=BqYk31UHkmv0WZShES6pIZcdmPPGay5LbzifAdZ2Ia4= 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=lists1p.gnu.org; Received-SPF: pass client-ip=172.234.252.31; envelope-from=da.gomez@kernel.org; helo=sea.source.kernel.org X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @kernel.org) X-ZM-MESSAGEID: 1780058240278158500 From: Daniel Gomez Commit 53493c1f83 ("hw/nvme: cap MDTS value for internal limitation") capped MDTS so the worst-case PRP count would fit in IOV_MAX, leaving transfers limited to 2 MiB. Now that dma_blk_cb() can batch IOs up to IOV_MAX instead of limiting to IOV_MAX, raise the limit via a new NVME_MDTS_MAX =3D 11 (i.e. 8 MiB) to match Linux's NVME_MAX_BYTES. Per spec, MDTS=3D0 means "that there is no maximum data transfer size". With the dma_blk_cb() changes, we can potentionally honor that literally, however Linux host driver will clamp requests at NVME_MAX_BYTES regardless of the advertised MDTS. Coerce mdts=3D0 to NVME_MDTS_MAX so the value the guest sees matches the current Linux ceiling and document it. Signed-off-by: Daniel Gomez --- hw/nvme/ctrl.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 00995d9808f..123f969cc03 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -104,6 +104,9 @@ * as a power of two (2^n) and is in units of the minimum memory page si= ze * (CAP.MPSMIN). The default value is 7 (i.e. 512 KiB). * + * NOTE: A value of 0 means "that there is no maximum data transfer size= " per + * spec, but here it is coerced to 11 (i.e. 8 MiB). + * * - `vsl` * Indicates the maximum data size limit for the Verify command. Like `m= dts`, * this value is specified as a power of two (2^n) and is in units of the @@ -226,6 +229,7 @@ #define NVME_VF_RES_GRANULARITY 1 #define NVME_VF_OFFSET 0x1 #define NVME_VF_STRIDE 1 +#define NVME_MDTS_MAX 11 =20 #define NVME_GUEST_ERR(trace, fmt, ...) \ do { \ @@ -8624,10 +8628,13 @@ static bool nvme_check_params(NvmeCtrl *n, Error **= errp) host_memory_backend_set_mapped(n->pmr.dev, true); } =20 - if (!n->params.mdts || ((1 << n->params.mdts) + 1) > IOV_MAX) { - error_setg(errp, "mdts exceeds IOV_MAX"); + if (n->params.mdts > NVME_MDTS_MAX) { + error_setg(errp, "mdts must be in [0, %u]", NVME_MDTS_MAX); return false; } + if (n->params.mdts =3D=3D 0) { + n->params.mdts =3D NVME_MDTS_MAX; + } =20 if (n->params.zasl > n->params.mdts) { error_setg(errp, "zoned.zasl (Zone Append Size Limit) must be less= " --=20 2.53.0