Summary: | Receive side scaling (RSS) for more than 16 queues not working in "ixl" driver | ||
---|---|---|---|
Product: | Base System | Reporter: | tushar.swain |
Component: | kern | Assignee: | Eric Joyner <erj> |
Status: | Closed Feedback Timeout | ||
Severity: | Affects Some People | CC: | erj, jch, sbruno, tushar.swain |
Priority: | --- | Keywords: | IntelNetworking |
Version: | CURRENT | ||
Hardware: | amd64 | ||
OS: | Any |
Description
tushar.swain
2015-09-29 19:59:14 UTC
So it looks like the hash is being used to index into the HLUT, but the resulting queue is then mod 16. To illustrate: HLUT(45): 0x24252627 (where bits 21:16 contain LUT entry 4*45+2) and a packet received on queue 5 has a hash of 0xa33600b6 in its RX descriptor. According to the HLUT, it should really have gone to queue 37. This is really odd. Try replacing the line ctxt.info.tc_mapping[0] = 0x0800 with ctxt.info.tc_mapping[0] = 0x0c00 Tushar has said this enabled RSS on all of his queues, so it looks like the change I posted worked and should be included in the driver. (In reply to Eric Joyner from comment #3) Eric: Did this get dropped into the ixl(4) update you pushed to phabricator? https://reviews.freebsd.org/D6211 (In reply to Sean Bruno from comment #4) I fixed this in a previous phabricator review that was committed (https://reviews.freebsd.org/D5203), but I enhanced it slightly there and need to include those changes in the review I posted above, though. Did the submitter get a chance to see if this fixed his problem? Otherwise, I'm going to close this. |