tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: bfd521e1af519bb7096efc845f6a64a7de28c472 commit: c0351b7c25ffd52408c1297fbe552f185d5aac3f [5737/10502] mlxsw: spectrum_router: Set FIB entry's type based on nexthop group config: powerpc64-randconfig-r032-20201203 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 32c501dd88b62787d3a5ffda7aabcf4650dbe3cd) 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 # install powerpc64 cross compiling tool for clang build # apt-get install binutils-powerpc64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c0351b7c25ffd52408c1297fbe552f185d5aac3f git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout c0351b7c25ffd52408c1297fbe552f185d5aac3f # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:6360:13: warning: stack frame size of 2064 bytes in function 'mlxsw_sp_router_fib_event_work' [-Wframe-larger-than=] static void mlxsw_sp_router_fib_event_work(struct work_struct *work) ^ 1 warning generated. vim +/mlxsw_sp_router_fib_event_work +6360 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c d42b0965b1d4fe0 Yotam Gigi 2017-09-27 6359 c1b290d594a12b4 Jiri Pirko 2020-11-10 @6360 static void mlxsw_sp_router_fib_event_work(struct work_struct *work) c1b290d594a12b4 Jiri Pirko 2020-11-10 6361 { c1b290d594a12b4 Jiri Pirko 2020-11-10 6362 struct mlxsw_sp_router *router = container_of(work, struct mlxsw_sp_router, fib_event_work); 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6363 struct mlxsw_sp_fib_entry_op_ctx *op_ctx = router->ll_op_ctx; c1b290d594a12b4 Jiri Pirko 2020-11-10 6364 struct mlxsw_sp *mlxsw_sp = router->mlxsw_sp; 505cd65c66e8223 Jiri Pirko 2020-11-10 6365 struct mlxsw_sp_fib_event *next_fib_event; 505cd65c66e8223 Jiri Pirko 2020-11-10 6366 struct mlxsw_sp_fib_event *fib_event; 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6367 int last_family = AF_UNSPEC; c1b290d594a12b4 Jiri Pirko 2020-11-10 6368 LIST_HEAD(fib_event_queue); c1b290d594a12b4 Jiri Pirko 2020-11-10 6369 c1b290d594a12b4 Jiri Pirko 2020-11-10 6370 spin_lock_bh(&router->fib_event_queue_lock); c1b290d594a12b4 Jiri Pirko 2020-11-10 6371 list_splice_init(&router->fib_event_queue, &fib_event_queue); c1b290d594a12b4 Jiri Pirko 2020-11-10 6372 spin_unlock_bh(&router->fib_event_queue_lock); c1b290d594a12b4 Jiri Pirko 2020-11-10 6373 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6374 /* Router lock is held here to make sure per-instance 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6375 * operation context is not used in between FIB4/6 events 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6376 * processing. 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6377 */ 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6378 mutex_lock(&router->lock); 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6379 mlxsw_sp_fib_entry_op_ctx_clear(op_ctx); 505cd65c66e8223 Jiri Pirko 2020-11-10 6380 list_for_each_entry_safe(fib_event, next_fib_event, 505cd65c66e8223 Jiri Pirko 2020-11-10 6381 &fib_event_queue, list) { 505cd65c66e8223 Jiri Pirko 2020-11-10 6382 /* Check if the next entry in the queue exists and it is 505cd65c66e8223 Jiri Pirko 2020-11-10 6383 * of the same type (family and event) as the currect one. 505cd65c66e8223 Jiri Pirko 2020-11-10 6384 * In that case it is permitted to do the bulking 505cd65c66e8223 Jiri Pirko 2020-11-10 6385 * of multiple FIB entries to a single register write. 505cd65c66e8223 Jiri Pirko 2020-11-10 6386 */ 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6387 op_ctx->bulk_ok = !list_is_last(&fib_event->list, &fib_event_queue) && 505cd65c66e8223 Jiri Pirko 2020-11-10 6388 fib_event->family == next_fib_event->family && 505cd65c66e8223 Jiri Pirko 2020-11-10 6389 fib_event->event == next_fib_event->event; 505cd65c66e8223 Jiri Pirko 2020-11-10 6390 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6391 /* In case family of this and the previous entry are different, context 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6392 * reinitialization is going to be needed now, indicate that. 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6393 * Note that since last_family is initialized to AF_UNSPEC, this is always 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6394 * going to happen for the first entry processed in the work. 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6395 */ 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6396 if (fib_event->family != last_family) 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6397 op_ctx->initialized = false; 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6398 c1b290d594a12b4 Jiri Pirko 2020-11-10 6399 switch (fib_event->family) { c1b290d594a12b4 Jiri Pirko 2020-11-10 6400 case AF_INET: 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6401 mlxsw_sp_router_fib4_event_process(mlxsw_sp, op_ctx, 2d5bd7a111ca082 Jiri Pirko 2020-11-10 6402 fib_event); c1b290d594a12b4 Jiri Pirko 2020-11-10 6403 break; c1b290d594a12b4 Jiri Pirko 2020-11-10 6404 case AF_INET6: 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6405 mlxsw_sp_router_fib6_event_process(mlxsw_sp, op_ctx, 2d5bd7a111ca082 Jiri Pirko 2020-11-10 6406 fib_event); c1b290d594a12b4 Jiri Pirko 2020-11-10 6407 break; c1b290d594a12b4 Jiri Pirko 2020-11-10 6408 case RTNL_FAMILY_IP6MR: c1b290d594a12b4 Jiri Pirko 2020-11-10 6409 case RTNL_FAMILY_IPMR: 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6410 /* Unlock here as inside FIBMR the lock is taken again 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6411 * under RTNL. The per-instance operation context 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6412 * is not used by FIBMR. 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6413 */ 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6414 mutex_unlock(&router->lock); c1b290d594a12b4 Jiri Pirko 2020-11-10 6415 mlxsw_sp_router_fibmr_event_process(mlxsw_sp, c1b290d594a12b4 Jiri Pirko 2020-11-10 6416 fib_event); 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6417 mutex_lock(&router->lock); c1b290d594a12b4 Jiri Pirko 2020-11-10 6418 break; c1b290d594a12b4 Jiri Pirko 2020-11-10 6419 default: c1b290d594a12b4 Jiri Pirko 2020-11-10 6420 WARN_ON_ONCE(1); c1b290d594a12b4 Jiri Pirko 2020-11-10 6421 } 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6422 last_family = fib_event->family; c1b290d594a12b4 Jiri Pirko 2020-11-10 6423 kfree(fib_event); c1b290d594a12b4 Jiri Pirko 2020-11-10 6424 cond_resched(); c1b290d594a12b4 Jiri Pirko 2020-11-10 6425 } ae9ce81aa726efb Jiri Pirko 2020-11-10 6426 WARN_ON_ONCE(!list_empty(&router->ll_op_ctx->fib_entry_priv_list)); 91d20d71b2f0b1e Jiri Pirko 2020-11-10 6427 mutex_unlock(&router->lock); c1b290d594a12b4 Jiri Pirko 2020-11-10 6428 } c1b290d594a12b4 Jiri Pirko 2020-11-10 6429 :::::: The code at line 6360 was first introduced by commit :::::: c1b290d594a12b4ed3b7386947162d5a061900b2 mlxsw: spectrum_router: Introduce FIB event queue instead of separate works :::::: TO: Jiri Pirko <jiri@xxxxxxxxxx> :::::: CC: Jakub Kicinski <kuba@xxxxxxxxxx> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip