From nobody Fri Jan 21 02:27:05 2022 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 238A01968F57; Fri, 21 Jan 2022 02:27:09 +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 4Jg3DV4x2nz4p2D; Fri, 21 Jan 2022 02:27:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642732027; 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=qQegU1TyeKxOfTXcpPB2R9wzZWJeIVXfRuGJld4yRAY=; b=CrIe1jB07u3+rYV7mpGdbpVJpgPk+Pv5QbPF7Wzoit2omGm/zBVs5pAuaP1EVC93hq1pLv 6B1WCZlnmhuTbvh/a619lIiUKfOsyjZyFzUFligch6VrbybDCBoDknUMCe3fqccf8kYOxq yK2JyLAfDPLH9uUazYD4qiadqIvBcsVJ96kmPpao6X2q091x7qvyELaJLAMJL3hNxHsq6h 5sKrv7T983HKAQZIKDxky4K8iqcCoUOe9utn548mDZCjOUr2h1yQfxP0biDAmRXb+uVxAC nlkIPExmxeABU1DM+dtMz+RTgqnmZ+xrXPZ4z58xXSoEiaqcaUqJ8B0aFrXvhQ== 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 58BBC13626; Fri, 21 Jan 2022 02:27:05 +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 20L2R57V001510; Fri, 21 Jan 2022 02:27:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20L2R5hH001509; Fri, 21 Jan 2022 02:27:05 GMT (envelope-from git) Date: Fri, 21 Jan 2022 02:27:05 GMT Message-Id: <202201210227.20L2R5hH001509@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: f022d47f2faa - stable/13 - nvme: Reduce traffic to the doorbell register 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f022d47f2faa2d4f24be4920645dab8b6f87dd3c Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642732027; 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=qQegU1TyeKxOfTXcpPB2R9wzZWJeIVXfRuGJld4yRAY=; b=nYKfCu67iQqCQ7rDZcNPvuuBwsE6IwpdSDc7/AZXwqnzcQVI8YLV7H7qPdq+GGgh20+TtX o06NnZiANdlOHVRllezvZ+CYln8LSAwYA9/R3FLt7k0opQ2nT9qPD0s6eDVHEVM9DAgicH 7fLE8cqtT0ZfGZG/A8YPilT3mnVIg5TDfaWxa7po1EDTBXbZ6Nv3ADT5IUyqbuZ2uT30jB QTILsdm0M2o2RncF0LfecUztu0eO4FotxY3yHvbQUEkjK88cnLO2+P+7h1DBvj94uqyuK8 lx0URUY4iWv2WihC73PdaPt297i5d7JCO6VsA3pLiQTBTi1pktS/zsSKip93gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1642732027; a=rsa-sha256; cv=none; b=G+3ova0bc1IWNx62xHcr0ZxxKLiEHtGn0SN2q/JZ0/GyWGs+Nd0EhGdAprRsqSK3G7yPW6 aMacUkmhIYwIlbgMOuj10TbvjeSY6hGXStfg1Zv5bj0pe+w4GigAQYSRCa+3+Z2XNqNHQ6 tBeK2y1l5x1iFyThrBhYnEVE0BMUetC5Og91s/DulkILoVFPCv9hMnJCTJjDuXOsscNXUZ o2+eNgQIjjq8q5o/vYbCeq32s4jmR3of1/FkdeSta5437uWP/n4x8yJiqsEkkw3IKUkwlT +yPxMiAD0HN/fohmHMXjiqZ/VPQDy0Mnec/LSs7tiwBj5qBxFDQTDLPZwxvhIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=f022d47f2faa2d4f24be4920645dab8b6f87dd3c commit f022d47f2faa2d4f24be4920645dab8b6f87dd3c Author: Warner Losh AuthorDate: 2021-10-14 14:44:37 +0000 Commit: Alexander Motin CommitDate: 2022-01-21 02:07:31 +0000 nvme: Reduce traffic to the doorbell register Reduce traffic to doorbell register when processing multiple completion events at once. Only write it at the end of the loop after we've processed everything (assuming we found at least one completion, even if that completion wasn't valid). Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D32470 (cherry picked from commit 2ec165e3f065217ae8d54a2a8235fe1f219805ea) --- sys/dev/nvme/nvme_qpair.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c index 6669eeee6613..54718492ff09 100644 --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -629,10 +629,10 @@ nvme_qpair_process_completions(struct nvme_qpair *qpair) else tr = NULL; + done++; if (tr != NULL) { nvme_qpair_complete_tracker(tr, &cpl, ERROR_PRINT_ALL); qpair->sq_head = cpl.sqhd; - done++; } else if (!in_panic) { /* * A missing tracker is normally an error. However, a @@ -664,10 +664,13 @@ nvme_qpair_process_completions(struct nvme_qpair *qpair) atomic_store_rel_int(&qpair->cq_head, 0); /* 2 */ qpair->phase = !qpair->phase; /* 3 */ } + } + if (done != 0) { bus_space_write_4(qpair->ctrlr->bus_tag, qpair->ctrlr->bus_handle, qpair->cq_hdbl_off, qpair->cq_head); } + return (done != 0); }