Message ID | 20171110222150.17754-1-jesus.sanchez-palencia@intel.com |
---|---|
State | Accepted |
Delegated to: | Jeff Kirsher |
Headers | show |
Series | [net-next] igb: Clarify idleslope config constraints | expand |
Reviewed-by: Andre Guedes <andre.guedes@intel.com> On Fri, 2017-11-10 at 14:21 -0800, Jesus Sanchez-Palencia wrote: > 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> > --- > drivers/net/ethernet/intel/igb/igb_main.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c > b/drivers/net/ethernet/intel/igb/igb_main.c > index 43cf39527660..d56c998f3f14 100644 > --- a/drivers/net/ethernet/intel/igb/igb_main.c > +++ b/drivers/net/ethernet/intel/igb/igb_main.c > @@ -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); >
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@osuosl.org] On Behalf > Of Jesus Sanchez-Palencia > Sent: Friday, November 10, 2017 2:22 PM > To: intel-wired-lan@lists.osuosl.org > Cc: Sanchez-Palencia, Jesus <jesus.sanchez-palencia@intel.com>; Guedes, > Andre <andre.guedes@intel.com>; Briano, Ivan <ivan.briano@intel.com> > Subject: [Intel-wired-lan] [PATCH net-next] 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> > --- > drivers/net/ethernet/intel/igb/igb_main.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) Tested-by: Aaron Brown <aaron.f.brown@intel.com>
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 43cf39527660..d56c998f3f14 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -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);
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> --- drivers/net/ethernet/intel/igb/igb_main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)