From nobody Fri Apr 15 20:46:47 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id CA0A25D72C1; Fri, 15 Apr 2022 20:46:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Kg7fb5B97z4tdV; Fri, 15 Apr 2022 20:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650055608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZ5rahr0XSLu3c/iouAQNhxrS2zZSWpMDAALxiZT7G8=; b=xPu9wcjth/teg+ikuGGVoOKeqTkufpVT+LtAD7frHwNqRYY7I8aF1RJoYcsppMK7hBQtZE 9dkOehUhfqG2uRAlw7cWnMH8YVNQfDATjKZJCqB78vItBzPkTiYo3EQUfXEB4U+lrakBTb rIX2IYZ5HMVwIPfES+HsCktnN1VKexP2lLRZ5i95v6fM1N83YS9FvaHFSOoEgfSQP9hYLY 74PIgHCp8ej38Yt4GAlvfSRt5ZzQN7ifOonaX9ACyK9lM+rHgOsbZKi7ktokHAZiYdWP3N 2qRYE6fKKsJEg4lQGpZqWSq6fMyJsqOQFynBHxK6SF9fnou7o5wUMgLKATItSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 562011C603; Fri, 15 Apr 2022 20:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 23FKklFf079358; Fri, 15 Apr 2022 20:46:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 23FKkl22079357; Fri, 15 Apr 2022 20:46:47 GMT (envelope-from git) Date: Fri, 15 Apr 2022 20:46:47 GMT Message-Id: <202204152046.23FKkl22079357@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 3a468f201062 - main - nvme: Use saved mps when initializing drive List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3a468f2010627cfb10fddab88eecbda66f4ee2ca Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650055608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZ5rahr0XSLu3c/iouAQNhxrS2zZSWpMDAALxiZT7G8=; b=CC/+focvwWt5IHNLx0JJ3LNhfNXEgs50aHJ2AOb38K1J673rHXddDsyek42z4KxvA0AsaJ Tw1Og9aJLZ/eigpY8/V4xjMy28rGgugpiiG11xXny3Isfpt3SOvEANFgO/cebtWKurR7S6 cLYCE7tG7e2qokDzk5a4Fp3tHDqzKH1LliAzAB9OdVXnJCeYXq+AiTpiHXNJhoD946QlnW m126LJpXWvJ8hSr4mwcO+exQBQpJmu6xFXcoxrbIL9Mje4cPnoHzaFGmMwkEO6xDHG9hYB NFBF8P9FSiJLchtwxR4XBl4mBloTE6/gc7+8Mwmzqs9AIuME/jVtWrSobvUveQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1650055608; a=rsa-sha256; cv=none; b=oO2OUwItRkdQxuJIG2El/t/VB5L7SHIG8dusmx/KubIerm+sC8zSvXQES7FTk9WLvw8SBI vGh7Lb0eGgkPjTDLfIgJTjml0R9baizPPkGMbDh+ANxatdRyAS5vS1GSbp3F+2waRKXsKQ i0PNiFfCM0whUjc+1VFMqgPp/kIM943BHkHJBTJkxhLF2PSUP7nrCstDj7RBZ1XoMi58SZ OcBI/kLfCJZ8qsfxOJyRWlDboO0dq3TVnQoR9Yj40cQK0zJRsOOsdujSGdLRxkRxOOyzet 9IZ5NjcRhtbqUKcjx+MSut0X3oe5st/kCcmSPvBpcZqwZ0Y6kUkbsOO7X+g8Zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3a468f2010627cfb10fddab88eecbda66f4ee2ca commit 3a468f2010627cfb10fddab88eecbda66f4ee2ca Author: Warner Losh AuthorDate: 2022-04-15 20:41:20 +0000 Commit: Warner Losh CommitDate: 2022-04-15 20:46:18 +0000 nvme: Use saved mps when initializing drive Make sure we set the MPS we cached (currently the drives minimum mps) in CC (Controller Configuration) when reinitializing the drive. It must match the page_size that we're going to use. Also retire less specific NVME_PAGE_SHIFT since it's now unused. Sponsored by: Netflix Reviewed by: chuck Differential Revision: https://reviews.freebsd.org/D34869 --- sys/dev/nvme/nvme_ctrlr.c | 8 ++++++-- sys/dev/nvme/nvme_private.h | 5 ----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index 2bd6514d2a64..d78b46d043ae 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -388,8 +388,12 @@ nvme_ctrlr_enable(struct nvme_controller *ctrlr) cc |= 6 << NVME_CC_REG_IOSQES_SHIFT; /* SQ entry size == 64 == 2^6 */ cc |= 4 << NVME_CC_REG_IOCQES_SHIFT; /* CQ entry size == 16 == 2^4 */ - /* This evaluates to 0, which is according to spec. */ - cc |= (PAGE_SHIFT - NVME_BASE_SHIFT) << NVME_CC_REG_MPS_SHIFT; + /* + * Use the Memory Page Size selected during device initialization. Note + * that value stored in mps is suitable to use here without adjusting by + * NVME_MPS_SHIFT. + */ + cc |= ctrlr->mps << NVME_CC_REG_MPS_SHIFT; nvme_ctrlr_barrier(ctrlr, BUS_SPACE_BARRIER_WRITE); nvme_mmio_write_4(ctrlr, cc, cc); diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index 851405d7c9f6..5db5ac6a16ed 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -96,11 +96,6 @@ MALLOC_DECLARE(M_NVME); /* Maximum log page size to fetch for AERs. */ #define NVME_MAX_AER_LOG_SIZE (4096) -/* - * Page size parameters - */ -#define NVME_BASE_SHIFT 12 /* Several parameters (MSP) are 2^(12+x) */ - /* * Define CACHE_LINE_SIZE here for older FreeBSD versions that do not define * it.