From owner-svn-src-stable-11@freebsd.org Mon Sep 11 18:50:10 2017 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71F38E1CE0A; Mon, 11 Sep 2017 18:50:10 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3EA916D4BA; Mon, 11 Sep 2017 18:50:10 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v8BIo97g075870; Mon, 11 Sep 2017 18:50:09 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v8BIo951075869; Mon, 11 Sep 2017 18:50:09 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201709111850.v8BIo951075869@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 11 Sep 2017 18:50:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r323454 - stable/11/sys/dev/ntb X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/ntb X-SVN-Commit-Revision: 323454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Sep 2017 18:50:10 -0000 Author: mav Date: Mon Sep 11 18:50:09 2017 New Revision: 323454 URL: https://svnweb.freebsd.org/changeset/base/323454 Log: MFC r323074: Clear doorbell bits after masking them before processing. In theory this allows to avoid one more expensive doorbell register read later in some scenarios. But in practice it also significantly increases packet rate on PLX hardware, that I can't explain yet, possibly work- arounding some interrupt delays. Modified: stable/11/sys/dev/ntb/ntb_transport.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/ntb/ntb_transport.c ============================================================================== --- stable/11/sys/dev/ntb/ntb_transport.c Mon Sep 11 18:48:09 2017 (r323453) +++ stable/11/sys/dev/ntb/ntb_transport.c Mon Sep 11 18:50:09 2017 (r323454) @@ -1012,8 +1012,10 @@ ntb_transport_doorbell_callback(void *data, uint32_t v vec_mask &= nt->qp_bitmap; if ((vec_mask & (vec_mask - 1)) != 0) vec_mask &= ntb_db_read(nt->dev); - if (vec_mask != 0) + if (vec_mask != 0) { ntb_db_set_mask(nt->dev, vec_mask); + ntb_db_clear(nt->dev, vec_mask); + } while (vec_mask != 0) { qp_num = ffsll(vec_mask) - 1;