igb: Clarify idleslope config constraints
By design, the idleslope increments are restricted to 16.384kbps steps. Add a comment to igb_main.c making that explicit and add one example that illustrates the impact of that. Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
b701cacdbc
commit
0da6090ff7
@ -1744,6 +1744,20 @@ static void igb_configure_cbs(struct igb_adapter *adapter, int queue,
|
||||
* value = idleSlope * 61034
|
||||
* ----------------- (E6)
|
||||
* 1000000
|
||||
*
|
||||
* NOTE: For i210, given the above, we can see that idleslope
|
||||
* is represented in 16.38431 kbps units by the value at
|
||||
* the TQAVCC register (1Gbps / 61034), which reduces
|
||||
* the granularity for idleslope increments.
|
||||
* For instance, if you want to configure a 2576kbps
|
||||
* idleslope, the value to be written on the register
|
||||
* would have to be 157.23. If rounded down, you end
|
||||
* up with less bandwidth available than originally
|
||||
* required (~2572 kbps). If rounded up, you end up
|
||||
* with a higher bandwidth (~2589 kbps). Below the
|
||||
* approach we take is to always round up the
|
||||
* calculated value, so the resulting bandwidth might
|
||||
* be slightly higher for some configurations.
|
||||
*/
|
||||
value = DIV_ROUND_UP_ULL(idleslope * 61034ULL, 1000000);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user