From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Lobakin Date: Fri, 28 Jan 2022 18:44:01 +0100 Subject: [Intel-wired-lan] [PATCH net-next 13/19] iecm: implement splitq napi_poll In-Reply-To: <202201281316.ZdiaZw6q-lkp@intel.com> References: <20220128001009.721392-1-alan.brady@intel.com> <20220128001009.721392-14-alan.brady@intel.com> <202201281316.ZdiaZw6q-lkp@intel.com> Message-ID: <20220128174401.28054-1-alexandr.lobakin@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: intel-wired-lan@osuosl.org List-ID: From: kernel test robot Date: Fri, 28 Jan 2022 13:21:42 +0800 > Hi Alan, > > 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/Alan-Brady/Add-iecm-and-idpf/20220128-085513 > base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git e2cf07654efb0fd7bbcb475c6f74be7b5755a8fd > config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20220128/202201281316.ZdiaZw6q-lkp at intel.com/config) > compiler: arceb-elf-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/8e9b2451747f81363327cf5a4e07aaf88af52397 > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review Alan-Brady/Add-iecm-and-idpf/20220128-085513 > git checkout 8e9b2451747f81363327cf5a4e07aaf88af52397 > # save the config file to linux build tree > mkdir build_dir > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > > All errors (new ones prefixed by >>): > > drivers/net/ethernet/intel/iecm/iecm_txrx.c: In function 'iecm_rx_can_reuse_page': > >> drivers/net/ethernet/intel/iecm/iecm_txrx.c:3132:19: error: 'struct iecm_rx_buf' has no member named 'page_offset' > 3132 | if (rx_buf->page_offset > last_offset) > | ^~ So these series wasn't even compile-tested properly. x86 has only 4k pages, but lots of other architectures have much more. If ARC is not relevant enough to MEV, then I say that ARM64 has 4-64 Kb pages, and PowerPC64 has up to 256 Kb. > > > vim +3132 drivers/net/ethernet/intel/iecm/iecm_txrx.c > > 3103 > 3104 /** > 3105 * iecm_rx_can_reuse_page - Determine if page can be reused for another rx > 3106 * @rx_buf: buffer containing the page > 3107 * > 3108 * If page is reusable, we have a green light for calling iecm_reuse_rx_page, > 3109 * which will assign the current buffer to the buffer that next_to_alloc is > 3110 * pointing to; otherwise, the dma mapping needs to be destroyed and > 3111 * page freed > 3112 */ > 3113 bool iecm_rx_can_reuse_page(struct iecm_rx_buf *rx_buf) > 3114 { > 3115 struct iecm_page_info *page_info = &rx_buf->page_info[rx_buf->page_indx]; > 3116 > 3117 #if (PAGE_SIZE >= 8192) > 3118 unsigned int last_offset = PAGE_SIZE - rx_buf->buf_size; > 3119 #endif /* PAGE_SIZE < 8192) */ > 3120 unsigned int pagecnt_bias = page_info->pagecnt_bias; > 3121 struct page *page = page_info->page; > 3122 > 3123 /* avoid re-using remote pages */ > 3124 if (unlikely(iecm_rx_page_is_reserved(page))) > 3125 return false; > 3126 > 3127 #if (PAGE_SIZE < 8192) > 3128 /* if we are only owner of page we can reuse it */ > 3129 if (unlikely((page_count(page) - pagecnt_bias) > 1)) > 3130 return false; > 3131 #else > > 3132 if (rx_buf->page_offset > last_offset) > 3133 return false; > 3134 #endif /* PAGE_SIZE < 8192) */ > 3135 > 3136 /* If we have drained the page fragment pool we need to update > 3137 * the pagecnt_bias and page count so that we fully restock the > 3138 * number of references the driver holds. > 3139 */ > 3140 if (unlikely(pagecnt_bias == 1)) { > 3141 page_ref_add(page, USHRT_MAX - 1); > 3142 page_info->pagecnt_bias = USHRT_MAX; > 3143 } > 3144 > 3145 return true; > 3146 } > 3147 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all at lists.01.org Al