Message ID | 20210920132539.24114-1-mateusz.palczewski@intel.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [net-next,v2] iavf: Add support for 50G/100G in AIM algorithm | expand |
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@lists.01.org
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@intel.com > Signed-off-by: Mateusz Palczewski mateusz.palczewski@intel.com Please run checkpatch before sending: ERROR: Unrecognized email address: 'Brett Creeley brett.creeley@intel.com' #12: Signed-off-by: Brett Creeley brett.creeley@intel.com ERROR: Unrecognized email address: 'Mateusz Palczewski mateusz.palczewski@intel.com' #13: Signed-off-by: Mateusz Palczewski mateusz.palczewski@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(-)
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;