svn commit: r323454 - stable/11/sys/dev/ntb
Alexander Motin
mav at FreeBSD.org
Mon Sep 11 18:50:10 UTC 2017
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;
More information about the svn-src-stable
mailing list