We always create CQs that cannot overflow. Therefore, we can use flag IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN and avoid updating dbrec. HW will ignore the consumer index and this will save a memory barrier per successful polling.
What
Don't update CQ consumer index. Create CQs with IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN flag.
Why ?
Performance optimization.
Change type
What kind of change does this PR introduce?
[ ] Bugfix
[x] Feature
[ ] Code style update
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Tests
[ ] Other
Check list
[ ] Code follows the style de facto guidelines of this project
[ ] Comments have been inserted in hard to understand places
Description
We always create CQs that cannot overflow. Therefore, we can use flag IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN and avoid updating dbrec. HW will ignore the consumer index and this will save a memory barrier per successful polling.
What
Don't update CQ consumer index. Create CQs with IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN flag.
Why ?
Performance optimization.
Change type
What kind of change does this PR introduce?
Check list