Message ID | 20231208-igc-fix-hicredit-calc-v1-1-7e505fbe249d@l-acoustics.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net] igc: Fix hicredit calculation | expand |
Rodrigo Cataldo via B4 Relay <devnull+rodrigo.cadore.l-acoustics.com@kernel.org> writes: > From: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > According to the Intel Software Manual for I225, Section 7.5.2.7, > hicredit should be multiplied by the constant link-rate value, 0x7736. > > Currently, the old constant link-rate value, 0x7735, from the boards > supported on igb are being used, most likely due to a copy'n'paste, as > the rest of the logic is the same for both drivers. > > Update hicredit accordingly. > > Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading") > Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> > Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > --- Very good catch. Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com> Just for curiosity, my test machines are busy right now, what kind of difference are you seeing? > This is a simple fix for the credit calculation on igc devices > (i225/i226) to match the Intel software manual. > > This is my first contribution to the Linux Kernel. Apologies for any > mistakes and let me know if I improve anything. > --- > drivers/net/ethernet/intel/igc/igc_tsn.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c b/drivers/net/ethernet/intel/igc/igc_tsn.c > index a9c08321aca9..22cefb1eeedf 100644 > --- a/drivers/net/ethernet/intel/igc/igc_tsn.c > +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c > @@ -227,7 +227,7 @@ static int igc_tsn_enable_offload(struct igc_adapter *adapter) > wr32(IGC_TQAVCC(i), tqavcc); > > wr32(IGC_TQAVHC(i), > - 0x80000000 + ring->hicredit * 0x7735); > + 0x80000000 + ring->hicredit * 0x7736); > } else { > /* Disable any CBS for the queue */ > txqctl &= ~(IGC_TXQCTL_QAV_SEL_MASK); > > --- > base-commit: 2078a341f5f609d55667c2dc6337f90d8f322b8f > change-id: 20231206-igc-fix-hicredit-calc-028bf73c50a8 > > Best regards, > -- > Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > Cheers,
Rodrigo Cataldo via B4 Relay <devnull+rodrigo.cadore.l-acoustics.com@kernel.org> writes: > From: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > According to the Intel Software Manual for I225, Section 7.5.2.7, > hicredit should be multiplied by the constant link-rate value, 0x7736. > > Currently, the old constant link-rate value, 0x7735, from the boards > supported on igb are being used, most likely due to a copy'n'paste, as > the rest of the logic is the same for both drivers. > > Update hicredit accordingly. > > Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading") > Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> > Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > --- Looks good to me! Acked-by: Malli Chilakala <mallikarjuna.chilakala@intel.com> > This is a simple fix for the credit calculation on igc devices > (i225/i226) to match the Intel software manual. > > This is my first contribution to the Linux Kernel. Apologies for any > mistakes and let me know if I improve anything. > --- > drivers/net/ethernet/intel/igc/igc_tsn.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c > b/drivers/net/ethernet/intel/igc/igc_tsn.c > index a9c08321aca9..22cefb1eeedf 100644 > --- a/drivers/net/ethernet/intel/igc/igc_tsn.c > +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c > @@ -227,7 +227,7 @@ static int igc_tsn_enable_offload(struct igc_adapter *adapter) > wr32(IGC_TQAVCC(i), tqavcc); > > wr32(IGC_TQAVHC(i), > - 0x80000000 + ring->hicredit * 0x7735); > + 0x80000000 + ring->hicredit * 0x7736); > } else { > /* Disable any CBS for the queue */ > txqctl &= ~(IGC_TXQCTL_QAV_SEL_MASK); > > --- > base-commit: 2078a341f5f609d55667c2dc6337f90d8f322b8f > change-id: 20231206-igc-fix-hicredit-calc-028bf73c50a8 > > Best regards, > -- > Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> >
> -----Original Message----- > From: Vinicius Costa Gomes <vinicius.gomes@intel.com> > > Rodrigo Cataldo via B4 Relay > <devnull+rodrigo.cadore.l-acoustics.com@kernel.org> writes: > > > From: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > > > According to the Intel Software Manual for I225, Section 7.5.2.7, > > hicredit should be multiplied by the constant link-rate value, 0x7736. > > > > Currently, the old constant link-rate value, 0x7735, from the boards > > supported on igb are being used, most likely due to a copy'n'paste, as > > the rest of the logic is the same for both drivers. > > > > Update hicredit accordingly. > > > > Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading") > > Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> > > Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > --- > > Very good catch. > > Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com> > > Just for curiosity, my test machines are busy right now, what kind of > difference are you seeing? > Hello Vinicius, thank you for the ACK. For our internal setup, this does not make a difference. My understanding is that hicredit is used for non-SR traffic mixed with SR traffic (i.e., hicredit is directly related to the max non-SR frame size). But our setup does not mix them (q0 is used only for milan audio/clock SR class A). Let me know if you think we need a testcase for this. > > This is a simple fix for the credit calculation on igc devices > > (i225/i226) to match the Intel software manual. > > > > This is my first contribution to the Linux Kernel. Apologies for any > > mistakes and let me know if I improve anything. > > --- > > drivers/net/ethernet/intel/igc/igc_tsn.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c > b/drivers/net/ethernet/intel/igc/igc_tsn.c > > index a9c08321aca9..22cefb1eeedf 100644 > > --- a/drivers/net/ethernet/intel/igc/igc_tsn.c > > +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c > > @@ -227,7 +227,7 @@ static int igc_tsn_enable_offload(struct igc_adapter > *adapter) > > wr32(IGC_TQAVCC(i), tqavcc); > > > > wr32(IGC_TQAVHC(i), > > - 0x80000000 + ring->hicredit * 0x7735); > > + 0x80000000 + ring->hicredit * 0x7736); > > } else { > > /* Disable any CBS for the queue */ > > txqctl &= ~(IGC_TXQCTL_QAV_SEL_MASK); > > > > --- > > base-commit: 2078a341f5f609d55667c2dc6337f90d8f322b8f > > change-id: 20231206-igc-fix-hicredit-calc-028bf73c50a8 > > > > Best regards, > > -- > > Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > > > Cheers, > -- > Vinicius Best Regards, Rodrigo Cataldo
Rodrigo CADORE CATALDO <rodrigo.cadore@l-acoustics.com> writes: >> -----Original Message----- >> From: Vinicius Costa Gomes <vinicius.gomes@intel.com> >> >> Rodrigo Cataldo via B4 Relay >> <devnull+rodrigo.cadore.l-acoustics.com@kernel.org> writes: >> >> > From: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> >> > >> > According to the Intel Software Manual for I225, Section 7.5.2.7, >> > hicredit should be multiplied by the constant link-rate value, 0x7736. >> > >> > Currently, the old constant link-rate value, 0x7735, from the boards >> > supported on igb are being used, most likely due to a copy'n'paste, as >> > the rest of the logic is the same for both drivers. >> > >> > Update hicredit accordingly. >> > >> > Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading") >> > Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> >> > Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> >> > --- >> >> Very good catch. >> >> Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com> >> >> Just for curiosity, my test machines are busy right now, what kind of >> difference are you seeing? >> > > Hello Vinicius, thank you for the ACK. > > For our internal setup, this does not make a difference. My understanding is > that hicredit is used for non-SR traffic mixed with SR traffic (i.e., hicredit is > directly related to the max non-SR frame size). But our setup does not mix > them (q0 is used only for milan audio/clock SR class A). I see. > > Let me know if you think we need a testcase for this. > It was just curiority. No need. Thanks. >> > This is a simple fix for the credit calculation on igc devices >> > (i225/i226) to match the Intel software manual. >> > >> > This is my first contribution to the Linux Kernel. Apologies for any >> > mistakes and let me know if I improve anything. >> > --- >> > drivers/net/ethernet/intel/igc/igc_tsn.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c >> b/drivers/net/ethernet/intel/igc/igc_tsn.c >> > index a9c08321aca9..22cefb1eeedf 100644 >> > --- a/drivers/net/ethernet/intel/igc/igc_tsn.c >> > +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c >> > @@ -227,7 +227,7 @@ static int igc_tsn_enable_offload(struct igc_adapter >> *adapter) >> > wr32(IGC_TQAVCC(i), tqavcc); >> > >> > wr32(IGC_TQAVHC(i), >> > - 0x80000000 + ring->hicredit * 0x7735); >> > + 0x80000000 + ring->hicredit * 0x7736); >> > } else { >> > /* Disable any CBS for the queue */ >> > txqctl &= ~(IGC_TXQCTL_QAV_SEL_MASK); >> > >> > --- >> > base-commit: 2078a341f5f609d55667c2dc6337f90d8f322b8f >> > change-id: 20231206-igc-fix-hicredit-calc-028bf73c50a8 >> > >> > Best regards, >> > -- >> > Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> >> > >> >> Cheers, >> -- >> Vinicius > > Best Regards, > Rodrigo Cataldo Cheers,
On 12/8/2023 16:58, Rodrigo Cataldo via B4 Relay wrote: > From: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > > According to the Intel Software Manual for I225, Section 7.5.2.7, > hicredit should be multiplied by the constant link-rate value, 0x7736. > > Currently, the old constant link-rate value, 0x7735, from the boards > supported on igb are being used, most likely due to a copy'n'paste, as > the rest of the logic is the same for both drivers. > > Update hicredit accordingly. > > Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading") > Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> > Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com> > --- > This is a simple fix for the credit calculation on igc devices > (i225/i226) to match the Intel software manual. > > This is my first contribution to the Linux Kernel. Apologies for any > mistakes and let me know if I improve anything. > --- > drivers/net/ethernet/intel/igc/igc_tsn.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Tested-by: Naama Meir <naamax.meir@linux.intel.com>
diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c b/drivers/net/ethernet/intel/igc/igc_tsn.c index a9c08321aca9..22cefb1eeedf 100644 --- a/drivers/net/ethernet/intel/igc/igc_tsn.c +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c @@ -227,7 +227,7 @@ static int igc_tsn_enable_offload(struct igc_adapter *adapter) wr32(IGC_TQAVCC(i), tqavcc); wr32(IGC_TQAVHC(i), - 0x80000000 + ring->hicredit * 0x7735); + 0x80000000 + ring->hicredit * 0x7736); } else { /* Disable any CBS for the queue */ txqctl &= ~(IGC_TXQCTL_QAV_SEL_MASK);