mlxcx should pass receive messages to mac layer more frequently
In testing I have seen the receive path lock up where the receive interrupt (or poll) has amassed a full chain of mblks, one for each entries in the receive ring.
I couldn't 100% ascertain as to why the chain had not been passed up to mac (as I have been chasing a few slow downs and lock ups), but using the same technique as other NIC drivers whereby after a given number of accumulated mblks, they driver calls into mac to get them processed.
As part of this I added the tuneable to mlxcx.conf
# # To provide some level of moderation and aid latencies, after # "rx_limit_per_completion" packets received in a single completion # event, the interrupt handler will pass the chain up the receive stack. # #rx_limit_per_completion = 256;
Updated by Electric Monk over 2 years ago
- Status changed from In Progress to Closed
- % Done changed from 80 to 100
commit 22d052287ba7ed169757650e2eec25fedbae163a Author: Paul Winder <firstname.lastname@example.org> Date: 2020-04-14T15:40:07.000Z 12383 Slow down and lock up in mlxcx receive interrupt path 12438 mlxcx should pass receive messages to mac layer more frequently 12439 mlxcx send rings can overflow 12440 mlxcx should not block in the send path 12441 mlxcx default queue sizes are a bit on the small size Reviewed by: Garrett D'Amore <email@example.com> Reviewed by: Andy Stormont <firstname.lastname@example.org> Reviewed by: Igor Kozhukhov <email@example.com> Reviewed by: Robert Mustacchi <firstname.lastname@example.org> Approved by: Garrett D'Amore <email@example.com>