Comments inline below. On Wed, Nov 22, 2017 at 8:23 AM, Michał Purzyński <michalpurzyns...@gmail.com> wrote: > Hello! > > How do I read the indirection table, then one that can be shown with > ethtool -x? What is the meaning of columns vs rows and what those numbers > are trying to tell me? I'm guessing it's kind of like a weight, but I'm not > sure how to understand it.
So what the indirection table does is allow us to map bits from the RSS hash onto specific rings. So in the example you provided below there are 512 entries, this represents 9 bits. Those 9 bits appear to be mapped onto 14 queues based on the table you provided. So the easiest way to examine this would be to look at skb->hash that is being reported by the device in the case of flow director/ATR being disabled. What you should find is that if you mask the skb->hash by masking it with 511 (0x1FF) what you should find is that the number returned will give you the index into this table, and the packet itself should be received on the queue associated with that index. > RX flow hash indirection table for p3p1 with 14 RX ring(s): > > 0: 0 1 2 3 4 5 6 7 > 8: 8 9 10 11 12 13 0 1 > 16: 2 3 4 5 6 7 8 9 > 24: 10 11 12 13 0 1 2 3 > 32: 4 5 6 7 8 9 10 11 > 40: 12 13 0 1 2 3 4 5 > 48: 6 7 8 9 10 11 12 13 > 56: 0 1 2 3 4 5 6 7 > 64: 8 9 10 11 12 13 0 1 > 72: 2 3 4 5 6 7 8 9 > 80: 10 11 12 13 0 1 2 3 > 88: 4 5 6 7 8 9 10 11 > 96: 12 13 0 1 2 3 4 5 > 104: 6 7 8 9 10 11 12 13 > 112: 0 1 2 3 4 5 6 7 > 120: 8 9 10 11 12 13 0 1 > 128: 2 3 4 5 6 7 8 9 > 136: 10 11 12 13 0 1 2 3 > 144: 4 5 6 7 8 9 10 11 > 152: 12 13 0 1 2 3 4 5 > 160: 6 7 8 9 10 11 12 13 > 168: 0 1 2 3 4 5 6 7 > 176: 8 9 10 11 12 13 0 1 > 184: 2 3 4 5 6 7 8 9 > 192: 10 11 12 13 0 1 2 3 > 200: 4 5 6 7 8 9 10 11 > 208: 12 13 0 1 2 3 4 5 > 216: 6 7 8 9 10 11 12 13 > 224: 0 1 2 3 4 5 6 7 > 232: 8 9 10 11 12 13 0 1 > 240: 2 3 4 5 6 7 8 9 > 248: 10 11 12 13 0 1 2 3 > 256: 4 5 6 7 8 9 10 11 > 264: 12 13 0 1 2 3 4 5 > 272: 6 7 8 9 10 11 12 13 > 280: 0 1 2 3 4 5 6 7 > 288: 8 9 10 11 12 13 0 1 > 296: 2 3 4 5 6 7 8 9 > 304: 10 11 12 13 0 1 2 3 > 312: 4 5 6 7 8 9 10 11 > 320: 12 13 0 1 2 3 4 5 > 328: 6 7 8 9 10 11 12 13 > 336: 0 1 2 3 4 5 6 7 > 344: 8 9 10 11 12 13 0 1 > 352: 2 3 4 5 6 7 8 9 > 360: 10 11 12 13 0 1 2 3 > 368: 4 5 6 7 8 9 10 11 > 376: 12 13 0 1 2 3 4 5 > 384: 6 7 8 9 10 11 12 13 > 392: 0 1 2 3 4 5 6 7 > 400: 8 9 10 11 12 13 0 1 > 408: 2 3 4 5 6 7 8 9 > 416: 10 11 12 13 0 1 2 3 > 424: 4 5 6 7 8 9 10 11 > 432: 12 13 0 1 2 3 4 5 > 440: 6 7 8 9 10 11 12 13 > 448: 0 1 2 3 4 5 6 7 > 456: 8 9 10 11 12 13 0 1 > 464: 2 3 4 5 6 7 8 9 > 472: 10 11 12 13 0 1 2 3 > 480: 4 5 6 7 8 9 10 11 > 488: 12 13 0 1 2 3 4 5 > 496: 6 7 8 9 10 11 12 13 > 504: 0 1 2 3 4 5 6 7 So for example if I had an RSS hash that was something like 0x01234567 and I masked the lower 9 bits I would get 0x167, which comes out as 359 decimal. As such I would expect the packet to be received on queue 9 based on the table provided here. I hope that helps to clarify how the indirection table is used. - Alex ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired