All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm
@ 2021-09-20 13:25 Mateusz Palczewski
  2021-09-20 17:31   ` kernel test robot
  2021-09-20 22:21 ` Nguyen, Anthony L
  0 siblings, 2 replies; 4+ messages in thread
From: Mateusz Palczewski @ 2021-09-20 13:25 UTC (permalink / raw)
  To: intel-wired-lan

Advanced link speed support was added long back, but adding AIM support
was missed. Adding AIM support for advanced link speed support
allows the algorithm to take into account 50G/100G link speeds.
Also, other previous speeds are taken into consideration when advanced
link speeds are supported.

Signed-off-by: Brett Creeley brett.creeley at intel.com
Signed-off-by: Mateusz Palczewski mateusz.palczewski at intel.com
---
 v2: Removed build issues
---
 drivers/net/ethernet/intel/iavf/iavf_txrx.c | 70 +++++++++++++++------
 1 file changed, 51 insertions(+), 19 deletions(-)

diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c
index 3525eab..31286cf 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c
@@ -368,35 +368,66 @@ void iavf_force_wb(struct iavf_vsi *vsi, struct iavf_q_vector *q_vector)
 	     val);
 }
 
-static inline bool iavf_container_is_rx(struct iavf_q_vector *q_vector,
-					struct iavf_ring_container *rc)
+static bool iavf_container_is_rx(struct iavf_q_vector *q_vector,
+				 struct iavf_ring_container *rc)
 {
 	return &q_vector->rx == rc;
 }
 
-static inline unsigned int iavf_itr_divisor(struct iavf_q_vector *q_vector)
-{
-	unsigned int divisor;
+#define IAVF_AIM_MULTIPLIER_100G	2560
+#define IAVF_AIM_MULTIPLIER_50G 	1280
+#define IAVF_AIM_MULTIPLIER_40G 	1024
+#define IAVF_AIM_MULTIPLIER_20G 	512
+#define IAVF_AIM_MULTIPLIER_10G 	256
+#define IAVF_AIM_MULTIPLIER_1G  	32
 
-	switch (q_vector->adapter->link_speed) {
+static unsigned int iavf_mbps_itr_multiplier(u32 speed_mbps)
+{
+	switch (speed_mbps) {
+	case SPEED_100000:
+		return IAVF_AIM_MULTIPLIER_100G;
+	case SPEED_50000:
+		return IAVF_AIM_MULTIPLIER_50G;
+	case SPEED_40000:
+		return IAVF_AIM_MULTIPLIER_40G;
+	case SPEED_25000:
+	case SPEED_20000:
+		return IAVF_AIM_MULTIPLIER_20G;
+	case SPEED_10000:
+	default:
+		return IAVF_AIM_MULTIPLIER_10G;
+	case SPEED_1000:
+	case SPEED_100:
+		return IAVF_AIM_MULTIPLIER_1G;
+	}
+}
+?
+static unsigned int
+iavf_virtchnl_itr_multiplier(enum virtchnl_link_speed speed_virtchnl)
+{
+	switch (speed_virtchnl) {
 	case VIRTCHNL_LINK_SPEED_40GB:
-		divisor = IAVF_ITR_ADAPTIVE_MIN_INC * 1024;
-		break;
+		return IAVF_AIM_MULTIPLIER_40G;
 	case VIRTCHNL_LINK_SPEED_25GB:
 	case VIRTCHNL_LINK_SPEED_20GB:
-		divisor = IAVF_ITR_ADAPTIVE_MIN_INC * 512;
-		break;
-	default:
+		return IAVF_AIM_MULTIPLIER_20G;
 	case VIRTCHNL_LINK_SPEED_10GB:
-		divisor = IAVF_ITR_ADAPTIVE_MIN_INC * 256;
-		break;
+	default:
+		return IAVF_AIM_MULTIPLIER_10G;
 	case VIRTCHNL_LINK_SPEED_1GB:
 	case VIRTCHNL_LINK_SPEED_100MB:
-		divisor = IAVF_ITR_ADAPTIVE_MIN_INC * 32;
-		break;
+		return IAVF_AIM_MULTIPLIER_1G;
 	}
-
-	return divisor;
+}
+?
+static unsigned int iavf_itr_divisor(struct iavf_adapter *adapter)
+{
+	if (ADV_LINK_SUPPORT(adapter))
+		return IAVF_ITR_ADAPTIVE_MIN_INC *
+			iavf_mbps_itr_multiplier(adapter->link_speed_mbps);
+	else
+		return IAVF_ITR_ADAPTIVE_MIN_INC *
+			iavf_virtchnl_itr_multiplier(adapter->link_speed);
 }
 
 /**
@@ -586,8 +617,9 @@ adjust_by_size:
 	 * Use addition as we have already recorded the new latency flag
 	 * for the ITR value.
 	 */
-	itr += DIV_ROUND_UP(avg_wire_size, iavf_itr_divisor(q_vector)) *
-	       IAVF_ITR_ADAPTIVE_MIN_INC;
+	itr += DIV_ROUND_UP(avg_wire_size,
+			    iavf_itr_divisor(q_vector->adapter)) *
+		IAVF_ITR_ADAPTIVE_MIN_INC;
 
 	if ((itr & IAVF_ITR_MASK) > IAVF_ITR_ADAPTIVE_MAX_USECS) {
 		itr &= IAVF_ITR_ADAPTIVE_LATENCY;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm
  2021-09-20 13:25 [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm Mateusz Palczewski
@ 2021-09-20 17:31   ` kernel test robot
  2021-09-20 22:21 ` Nguyen, Anthony L
  1 sibling, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-09-20 17:31 UTC (permalink / raw)
  To: intel-wired-lan

Hi Mateusz,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Mateusz-Palczewski/iavf-Add-support-for-50G-100G-in-AIM-algorithm/20210920-213856
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 85c698863c15176f743fd1d1fcf39ceb9172c820
config: mips-randconfig-r036-20210920 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/6f12aa40bda9bca31be044bc237866edb637992e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Mateusz-Palczewski/iavf-Add-support-for-50G-100G-in-AIM-algorithm/20210920-213856
        git checkout 6f12aa40bda9bca31be044bc237866edb637992e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):



vim +/342 +404 drivers/net/ethernet/intel/iavf/iavf_txrx.c

   383	
   384	static unsigned int iavf_mbps_itr_multiplier(u32 speed_mbps)
   385	{
   386		switch (speed_mbps) {
   387		case SPEED_100000:
   388			return IAVF_AIM_MULTIPLIER_100G;
   389		case SPEED_50000:
   390			return IAVF_AIM_MULTIPLIER_50G;
   391		case SPEED_40000:
   392			return IAVF_AIM_MULTIPLIER_40G;
   393		case SPEED_25000:
   394		case SPEED_20000:
   395			return IAVF_AIM_MULTIPLIER_20G;
   396		case SPEED_10000:
   397		default:
   398			return IAVF_AIM_MULTIPLIER_10G;
   399		case SPEED_1000:
   400		case SPEED_100:
   401			return IAVF_AIM_MULTIPLIER_1G;
   402		}
   403	}
 > 404	?
   405	static unsigned int
   406	iavf_virtchnl_itr_multiplier(enum virtchnl_link_speed speed_virtchnl)
   407	{
   408		switch (speed_virtchnl) {
   409		case VIRTCHNL_LINK_SPEED_40GB:
   410			return IAVF_AIM_MULTIPLIER_40G;
   411		case VIRTCHNL_LINK_SPEED_25GB:
   412		case VIRTCHNL_LINK_SPEED_20GB:
   413			return IAVF_AIM_MULTIPLIER_20G;
   414		case VIRTCHNL_LINK_SPEED_10GB:
   415		default:
   416			return IAVF_AIM_MULTIPLIER_10G;
   417		case VIRTCHNL_LINK_SPEED_1GB:
   418		case VIRTCHNL_LINK_SPEED_100MB:
   419			return IAVF_AIM_MULTIPLIER_1G;
   420		}
   421	}
   422	?
   423	static unsigned int iavf_itr_divisor(struct iavf_adapter *adapter)
   424	{
   425		if (ADV_LINK_SUPPORT(adapter))
   426			return IAVF_ITR_ADAPTIVE_MIN_INC *
   427				iavf_mbps_itr_multiplier(adapter->link_speed_mbps);
   428		else
   429			return IAVF_ITR_ADAPTIVE_MIN_INC *
   430				iavf_virtchnl_itr_multiplier(adapter->link_speed);
   431	}
   432	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all at lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 34623 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20210921/7b2463e2/attachment-0001.bin>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm
@ 2021-09-20 17:31   ` kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-09-20 17:31 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3094 bytes --]

Hi Mateusz,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Mateusz-Palczewski/iavf-Add-support-for-50G-100G-in-AIM-algorithm/20210920-213856
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 85c698863c15176f743fd1d1fcf39ceb9172c820
config: mips-randconfig-r036-20210920 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/6f12aa40bda9bca31be044bc237866edb637992e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Mateusz-Palczewski/iavf-Add-support-for-50G-100G-in-AIM-algorithm/20210920-213856
        git checkout 6f12aa40bda9bca31be044bc237866edb637992e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):



vim +/342 +404 drivers/net/ethernet/intel/iavf/iavf_txrx.c

   383	
   384	static unsigned int iavf_mbps_itr_multiplier(u32 speed_mbps)
   385	{
   386		switch (speed_mbps) {
   387		case SPEED_100000:
   388			return IAVF_AIM_MULTIPLIER_100G;
   389		case SPEED_50000:
   390			return IAVF_AIM_MULTIPLIER_50G;
   391		case SPEED_40000:
   392			return IAVF_AIM_MULTIPLIER_40G;
   393		case SPEED_25000:
   394		case SPEED_20000:
   395			return IAVF_AIM_MULTIPLIER_20G;
   396		case SPEED_10000:
   397		default:
   398			return IAVF_AIM_MULTIPLIER_10G;
   399		case SPEED_1000:
   400		case SPEED_100:
   401			return IAVF_AIM_MULTIPLIER_1G;
   402		}
   403	}
 > 404	​
   405	static unsigned int
   406	iavf_virtchnl_itr_multiplier(enum virtchnl_link_speed speed_virtchnl)
   407	{
   408		switch (speed_virtchnl) {
   409		case VIRTCHNL_LINK_SPEED_40GB:
   410			return IAVF_AIM_MULTIPLIER_40G;
   411		case VIRTCHNL_LINK_SPEED_25GB:
   412		case VIRTCHNL_LINK_SPEED_20GB:
   413			return IAVF_AIM_MULTIPLIER_20G;
   414		case VIRTCHNL_LINK_SPEED_10GB:
   415		default:
   416			return IAVF_AIM_MULTIPLIER_10G;
   417		case VIRTCHNL_LINK_SPEED_1GB:
   418		case VIRTCHNL_LINK_SPEED_100MB:
   419			return IAVF_AIM_MULTIPLIER_1G;
   420		}
   421	}
   422	​
   423	static unsigned int iavf_itr_divisor(struct iavf_adapter *adapter)
   424	{
   425		if (ADV_LINK_SUPPORT(adapter))
   426			return IAVF_ITR_ADAPTIVE_MIN_INC *
   427				iavf_mbps_itr_multiplier(adapter->link_speed_mbps);
   428		else
   429			return IAVF_ITR_ADAPTIVE_MIN_INC *
   430				iavf_virtchnl_itr_multiplier(adapter->link_speed);
   431	}
   432	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34623 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm
  2021-09-20 13:25 [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm Mateusz Palczewski
  2021-09-20 17:31   ` kernel test robot
@ 2021-09-20 22:21 ` Nguyen, Anthony L
  1 sibling, 0 replies; 4+ messages in thread
From: Nguyen, Anthony L @ 2021-09-20 22:21 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2021-09-20 at 15:25 +0200, Mateusz Palczewski wrote:
> Advanced link speed support was added long back, but adding AIM
> support
> was missed. Adding AIM support for advanced link speed support
> allows the algorithm to take into account 50G/100G link speeds.
> Also, other previous speeds are taken into consideration when
> advanced
> link speeds are supported.
> 
> Signed-off-by: Brett Creeley brett.creeley at intel.com
> Signed-off-by: Mateusz Palczewski mateusz.palczewski at intel.com

Please run checkpatch before sending:

ERROR: Unrecognized email address: 'Brett Creeley 
brett.creeley at intel.com'
#12:
Signed-off-by: Brett Creeley brett.creeley at intel.com

ERROR: Unrecognized email address: 'Mateusz Palczewski 
mateusz.palczewski at intel.com'
#13:
Signed-off-by: Mateusz Palczewski mateusz.palczewski at intel.com

WARNING: please, no space before tabs
#39: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:378:
+#define IAVF_AIM_MULTIPLIER_50G ^I1280$

WARNING: please, no space before tabs
#40: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:379:
+#define IAVF_AIM_MULTIPLIER_40G ^I1024$

WARNING: please, no space before tabs
#41: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:380:
+#define IAVF_AIM_MULTIPLIER_20G ^I512$

WARNING: please, no space before tabs
#42: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:381:
+#define IAVF_AIM_MULTIPLIER_10G ^I256$

WARNING: please, no space before tabs
#43: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:382:
+#define IAVF_AIM_MULTIPLIER_1G  ^I32$

CHECK: Please use a blank line after function/struct/union/enum
declarations
#66: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:404:
+}
+<200b>

CHECK: Please use a blank line after function/struct/union/enum
declarations
#95: FILE: drivers/net/ethernet/intel/iavf/iavf_txrx.c:422:
+}
+<200b>


> ---
>  v2: Removed build issues

Are you building these patches? Issues still exist:

drivers/net/ethernet/intel/iavf/iavf_txrx.c:404:1: error: stray \342 in
program
 
 ^
drivers/net/ethernet/intel/iavf/iavf_txrx.c:404:2: error: stray \200 in
program
 
  ^
drivers/net/ethernet/intel/iavf/iavf_txrx.c:404:3: error: stray \213 in
program
 
   ^
drivers/net/ethernet/intel/iavf/iavf_txrx.c:422:1: error: stray \342 in
program
 
 ^
drivers/net/ethernet/intel/iavf/iavf_txrx.c:422:2: error: stray \200 in
program
 
  ^
drivers/net/ethernet/intel/iavf/iavf_txrx.c:422:3: error: stray \213 in
program


> ---
>  drivers/net/ethernet/intel/iavf/iavf_txrx.c | 70 +++++++++++++++--
> ----
>  1 file changed, 51 insertions(+), 19 deletions(-)


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-20 22:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-20 13:25 [Intel-wired-lan] [PATCH net-next v2] iavf: Add support for 50G/100G in AIM algorithm Mateusz Palczewski
2021-09-20 17:31 ` kernel test robot
2021-09-20 17:31   ` kernel test robot
2021-09-20 22:21 ` Nguyen, Anthony L

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.