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. MFC after: 13 days Sponsored by: iXsystems, Inc.
This commit is contained in:
parent
5ea26aec6e
commit
84f8cfec2f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=323074
@ -1012,8 +1012,10 @@ ntb_transport_doorbell_callback(void *data, uint32_t vector)
|
||||
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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user