From patchwork Thu Mar 20 11:13:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Chamberlain X-Patchwork-Id: 14023861 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D096FC28B30 for ; Thu, 20 Mar 2025 12:04:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 16D96280002; Thu, 20 Mar 2025 08:04:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 11D20280001; Thu, 20 Mar 2025 08:04:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F25FD280002; Thu, 20 Mar 2025 08:04:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D5DA9280001 for ; Thu, 20 Mar 2025 08:04:03 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 98C121A13B5 for ; Thu, 20 Mar 2025 12:04:04 +0000 (UTC) X-FDA: 83241796008.16.B369F68 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf03.hostedemail.com (Postfix) with ESMTP id CE69D2001C for ; Thu, 20 Mar 2025 12:04:02 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=k1i6JkBH; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=quarantine); spf=none (imf03.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742472243; a=rsa-sha256; cv=none; b=UOdbLTXghPqBng397qbl1VSPNm84XncEOv1t1rHhvNUn8jD1RdOgxYaVj63OKzX3/48AIf Hy5JA2R1UMy8DblQORej+N3sEBnbhtdbKvBNtEG2miYDmVXXlmG6G3VdwATvLRnnkREhr7 Kkxumu4YN8PzHWe23NpalCdYITQuz7A= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=k1i6JkBH; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=quarantine); spf=none (imf03.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742472243; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gs4mQgpvMaKPx1XMegy2dt340WQwRma2LYoA2+CbDAc=; b=jI0D7mZcrX0XdxiucPfljHDuv3YJEonhGa4oW+2O3PigteNbRG6T90cEqufjNh2oPtHUIk oyGDl7EMRUPIl84BjWG2uK3QhEKlHlLKWqXgBG7Iq9PwHmbAkmEd0xOW5DVVtYby9ldG6I v4v4pNwF+H8zQxI4LE450tBSv34MFgs= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=gs4mQgpvMaKPx1XMegy2dt340WQwRma2LYoA2+CbDAc=; b=k1i6JkBHSHT0fr3QGyBpbdKsKs qwtzxHS2sxeO/5RW2t/2epVt9HQlqit7a1xKKEr6Ekf/btQ9vTKoA0rCyc0w8E6PSbY0VZ3Gt0Gzx FWphpz71JxF3i0wY6vjNTs4+Y1NTDvvsCNmGFfVDDaAPxPfc7G/Yx4n09nQu8tCz5zNhMODlArXcS hFAVGvl521m/au46cLJvAKxQwm5pfoFd591QFVEMXYhBWmuD1xCarxZDjVOVdARnWnKCEiVjBb0LL hFg5owWxQH9jv1x8Lc/M48kTqeVHRznRau24Jro+rjaqhzXaBHEWDGL/fPmwRIFl3HoEPffitH5A9 oyrGnhWQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tvDqB-0000000BvGP-1BwN; Thu, 20 Mar 2025 11:13:35 +0000 From: Luis Chamberlain To: leon@kernel.org, hch@lst.de, kbusch@kernel.org, sagi@grimberg.me, axboe@kernel.dk, joro@8bytes.org, brauner@kernel.org, hare@suse.de, willy@infradead.org, david@fromorbit.com, djwong@kernel.org Cc: john.g.garry@oracle.com, ritesh.list@gmail.com, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-mm@kvack.org, gost.dev@samsung.com, p.raghav@samsung.com, da.gomez@samsung.com, kernel@pankajraghav.com, mcgrof@kernel.org Subject: [RFC 4/4] nvme-pci: add quirk for qemu with bogus NOWS Date: Thu, 20 Mar 2025 04:13:28 -0700 Message-ID: <20250320111328.2841690-5-mcgrof@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250320111328.2841690-1-mcgrof@kernel.org> References: <20250320111328.2841690-1-mcgrof@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: CE69D2001C X-Rspam-User: X-Stat-Signature: kr9p1d1jsxyqhbwkeieqeskkaafpwf8w X-Rspamd-Pre-Result: action=add header; module=dmarc; Action set by DMARC X-Rspam: Yes X-HE-Tag: 1742472242-73455 X-HE-Meta: U2FsdGVkX193ztXMX9LPF056/qML8q/DXn6qpL53QGS+bAEgILNRNMNfauUygHRGCJzUAnmaKHm1bQx4LpwxuY3wn+UW/XW5SFryynvq6c+rJyBQMrDVZVJxNufUdfXnfn4s1aNLZtdCELCw7EK3uVXg8ssu5SMihXJfnv3teXzQU+hzJW5X3cPY6zLKFm4VPsXhiswrQ0Or0Kait7TEowk6aqrIU1bg6izmoV6ZbKOJ/jAh7ma9S1d4YETwNLspY+pwFZszyCAj85QDOSH72zQUr/gTYoSjieHyAfjqoluPb82KMfvip8w96f+3Wfo2rDkttnySIrIOJqtuDZCVfLpIPhql+76x9ZxIsK+Xha6+p1Ikb5tIjX52JlTvZAPN87MK2HZKcXlw7u7psj7J6h+8xUy/rWNm3tkTmG9SMHJTWCPnBN7YSgEEImdUx5+2uE92XyOnmbbkCxNsZLIvfft8wTM/8liTm5t082YTNevqj3YfZ8V/uQcAKSjWVDLmYR8KUdylBb5+3KZUMAPTtJDBXZI4hXQmsXTUVfr3bj9TrQfNzY2//Q+RDPFl4NNs076nviDOXxbYuNVBlfBYl1n+oCWrWCIPl4kzLO0RfIE6z+vGC8kR+jBwCWwEigI4P/UgHSLBBoo/j4d2JqawY/QjLG/+IZag0DvfdCcJgGcatMMVHtDE1U2votPh5PXM+j+p78t4dX59ceCnQAmVX9hLlB/2issIcU/h6kMrR1GCiMkpQ7UTt+Ai3GPkJeVmm3Gv8Y1MrlAiGfSpTqusUeu0Afdkx2z+NJKg6I4+fsOwX0TLHSCs5MgKRnWLr1rC7f0H2414sLMQeeUlKHwRrLe/t0fRdj/nEfXItu428Gsr/kmjEnWnAEl5I/6KFAB9spVdjGWrH051jqE49kgBSGgeChwdMmEstrnyZn5RGYbidPpPRrqMG3IjN07QPCJ5qHNyFRShUImyWcYWzH0 44QcKw13 rBiVF8uRi8Vgl4UThcnGxA2SbNgkqbWOIz8hjGAaabfaIPanpXZUuLw/hTQud+MOMtS4PTqL5SUYk6ZJuzm67ucySKbQeYg6pCvNRNMF+R4S1oFQDzb2ijYc2jmLwLbRZallzS+jtsm5axK4XVea+ZRRJswbUuvoV0dS6I5Nnu3CJ4QmFUUEAywuyAB0dOUJJBC/n2V6WBywgd3pj6jap/ume2CUD5Eg8vaRQ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The NOWS value for qemu is bogus but that means we need to be mucking with userspace when testing large IO, so just add a quirk to use sensible max limits, in this case just use MDTS as these drives are virtualized. Signed-off-by: Luis Chamberlain --- drivers/nvme/host/core.c | 2 ++ drivers/nvme/host/nvme.h | 5 +++++ drivers/nvme/host/pci.c | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index f028913e2e62..8f516de16281 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2070,6 +2070,8 @@ static bool nvme_update_disk_info(struct nvme_ns *ns, struct nvme_id_ns *id, /* NOWS = Namespace Optimal Write Size */ if (id->nows) io_opt = bs * (1 + le16_to_cpu(id->nows)); + else if (ns->ctrl->quirks & NVME_QUIRK_BOGUS_NOWS) + io_opt = lim->max_hw_sectors << SECTOR_SHIFT; } /* diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index 7be92d07430e..c63a804db462 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -178,6 +178,11 @@ enum nvme_quirks { * Align dma pool segment size to 512 bytes */ NVME_QUIRK_DMAPOOL_ALIGN_512 = (1 << 22), + + /* + * Reports a NOWS of 0 which is 1 logical block size which is bogus + */ + NVME_QUIRK_BOGUS_NOWS = (1 << 23), }; /* diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 27b830072c14..577d8f909139 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3469,7 +3469,8 @@ static const struct pci_device_id nvme_id_table[] = { NVME_QUIRK_DISABLE_WRITE_ZEROES | NVME_QUIRK_BOGUS_NID, }, { PCI_VDEVICE(REDHAT, 0x0010), /* Qemu emulated controller */ - .driver_data = NVME_QUIRK_BOGUS_NID, }, + .driver_data = NVME_QUIRK_BOGUS_NID | + NVME_QUIRK_BOGUS_NOWS, }, { PCI_DEVICE(0x1217, 0x8760), /* O2 Micro 64GB Steam Deck */ .driver_data = NVME_QUIRK_DMAPOOL_ALIGN_512, }, { PCI_DEVICE(0x126f, 0x2262), /* Silicon Motion generic */