From nobody Fri Apr 24 17:56:02 2026 X-Original-To: dev-commits-src-all@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 4g2LH71Fg7z6ZxSf for ; Fri, 24 Apr 2026 17:56:03 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g2LH63ktQz3ph6 for ; Fri, 24 Apr 2026 17:56:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777053362; 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=KogMIAUnLNFm6CmC9rnVPUC10rjuOm9kHxmz6WA6fOQ=; b=n/7QbouWM7mCj1tD2a2zLPo9rO2ClAZ32TczshvZouXH4wTw2OOS8J4vHT/nNh4Fp96QiG NOwor+2RLrnMJGpfKoX4haQzkPEWtJcw4iBmHvKEZ5vJrYLFgPgTrqDp9xmXWQv2ghvQzO 0ymTxn5g4qaBjVHRxJYKzp4nehK8u4RHTvpsT+lHHItWjqXrcCLRgM64jTiuKwmahMtkqy RmmLD5JjhtbYZShX2F4ttARS93Nb4G5D00f6qp8eBMwotHWDSrzCx7cFh36UjaAo/PgO92 /d8B4tYlY1givotlvqTgFMwnRzL5v7JIypZ8Ma4NA1M50897h08kH/DLXFmAJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777053362; a=rsa-sha256; cv=none; b=Q0en5fsQ00s/DKihkGEFUS0xDv6XVh/4G21aZhTobYyPKOi3fugLFpkCI1P6ulgeqea9s+ R3U51nMFK7LEDoOcnAdJdY7HCh6BXd+85Yd1payRTWMq6rlCi7Iglmcbtbl93jrOWAAxcW PD+CIBsiefncPaAHDjDDcNGQ9iSq+HESAmlm6MpY9oHo7SuIopyUdiH0fj8kc6uKXR8gkS u204O5yKwid1PEb8EawkxU4GhyYTSdM6+osPAllr7cYYrtHfrpUevBWN/tLQpK4ZnJgE6h 03051eOkBXWcSBD7CTEIz1woMYn9yksjpaG8dHep4E5CBviT+YlRccT8GtD0Aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777053362; 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=KogMIAUnLNFm6CmC9rnVPUC10rjuOm9kHxmz6WA6fOQ=; b=NKv4iKZoOesrvazcPfwyfWl8ryLXD6gIN3v5gzOQjETDDT4aqA3x5byWYr6dzbmko7qJvL L8L21uJnymFFXle/XN4QJDvJV7jik1Br0cD5eQe99RF02lBSeOXtn2JpfvHcr7mVuS/ypu 1qQOTvR+HFbYWWsrp28tBNDbngMXapBo73vejLrZ5r36df2GQXEnCdOWapnfdTA9PN3Uhl WSfe/1m5nhMPpSR4fpGAyCmfusj7zCIzA+ElYk2cLU4iI5G9+jzDFdSDRAuK7PgZPQqs9y rZg0vaMGvn9EhYTsDNWWCP0MBcqUiF1J7Fe7P6ujjjaLwhcb3CzoDMq3Tvla+g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g2LH63GVSz1C7J for ; Fri, 24 Apr 2026 17:56:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e3de by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 24 Apr 2026 17:56:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 45c8b3b908f3 - stable/15 - nvmf: Limit the default I/O queue size to 128 entries List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 45c8b3b908f3a5e9002db1dd4de74f413e52ef93 Auto-Submitted: auto-generated Date: Fri, 24 Apr 2026 17:56:02 +0000 Message-Id: <69ebaeb2.1e3de.79429f08@gitrepo.freebsd.org> The branch stable/15 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=45c8b3b908f3a5e9002db1dd4de74f413e52ef93 commit 45c8b3b908f3a5e9002db1dd4de74f413e52ef93 Author: John Baldwin AuthorDate: 2026-02-20 19:21:18 +0000 Commit: John Baldwin CommitDate: 2026-04-24 15:42:35 +0000 nvmf: Limit the default I/O queue size to 128 entries Previously the size defaulted to the maximum supported size reported by the remote host. The value of 128 matches the default on Linux and avoids excessive resource usage for I/O queues. Sponsored by: Chelsio Communications (cherry picked from commit 1602f0013bddc7b59b0b8de94c0e6cd742ffc9be) --- sbin/nvmecontrol/fabrics.c | 2 +- sbin/nvmecontrol/nvmecontrol.8 | 6 +++--- sys/dev/nvmf/nvmf.h | 3 ++- tools/tools/nvmf/nvmfdd/nvmfdd.c | 3 ++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sbin/nvmecontrol/fabrics.c b/sbin/nvmecontrol/fabrics.c index 5fdbf68127d4..b120118cf022 100644 --- a/sbin/nvmecontrol/fabrics.c +++ b/sbin/nvmecontrol/fabrics.c @@ -485,7 +485,7 @@ connect_nvm_queues(const struct nvmf_association_params *aparams, /* Validate I/O queue size. */ memset(io, 0, sizeof(*io) * num_io_queues); if (queue_size == 0) - queue_size = (u_int)mqes + 1; + queue_size = MIN(NVMF_DEFAULT_IO_ENTRIES, (u_int)mqes + 1); else if (queue_size > (u_int)mqes + 1) { warnx("I/O queue size exceeds controller maximum (%u)", mqes + 1); diff --git a/sbin/nvmecontrol/nvmecontrol.8 b/sbin/nvmecontrol/nvmecontrol.8 index dc757bcf90c3..55373f428ddf 100644 --- a/sbin/nvmecontrol/nvmecontrol.8 +++ b/sbin/nvmecontrol/nvmecontrol.8 @@ -33,7 +33,7 @@ .\" .\" Author: Jim Harris .\" -.Dd July 9, 2025 +.Dd February 20, 2026 .Dt NVMECONTROL 8 .Os .Sh NAME @@ -827,8 +827,8 @@ NVMe Qualified Name to use for this host. By default an NQN is auto-generated from the current host's UUID. .It Fl Q Ar entries Number of entries in each I/O queue. -By default the maximum queue size reported by the MQES field -of the remote host's CAP property is used. +The default is the minimum of 128 or the maximum queue size reported +by the MQES field of the remote host's CAP property. .El .Ss connect-all Query the Discovery Controller at diff --git a/sys/dev/nvmf/nvmf.h b/sys/dev/nvmf/nvmf.h index 9b2b4c1dea40..e53eecca156e 100644 --- a/sys/dev/nvmf/nvmf.h +++ b/sys/dev/nvmf/nvmf.h @@ -27,11 +27,12 @@ #define NVMF_NN (1024) /* - * Default timeouts for Fabrics hosts. These match values used by + * Default settings for Fabrics hosts. These match values used by * Linux. */ #define NVMF_DEFAULT_RECONNECT_DELAY 10 #define NVMF_DEFAULT_CONTROLLER_LOSS 600 +#define NVMF_DEFAULT_IO_ENTRIES 128 /* * (data, size) is the userspace buffer for a packed nvlist. diff --git a/tools/tools/nvmf/nvmfdd/nvmfdd.c b/tools/tools/nvmf/nvmfdd/nvmfdd.c index 0f181682aac2..9cc426c3ede9 100644 --- a/tools/tools/nvmf/nvmfdd/nvmfdd.c +++ b/tools/tools/nvmf/nvmfdd/nvmfdd.c @@ -474,7 +474,8 @@ main(int ac, char **av) memset(&qparams, 0, sizeof(qparams)); tcp_qpair_params(&qparams, false, address, port); - io = nvmf_connect(na, &qparams, 1, info.mqes + 1, hostid, + io = nvmf_connect(na, &qparams, 1, + MIN(NVMF_DEFAULT_IO_ENTRIES, info.mqes + 1), hostid, nvmf_cntlid(admin), av[2], hostnqn, 0); if (io == NULL) { warn("Failed to create I/O queue: %s",