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
|
@ -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