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&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to