Subject: Re: [PATCH v7 net-next 4/5] net-device: reorganize net_device fast path variables

From: kernel test robot <[email-masked]>
Date: Thu, 16 Nov 2023 20:39:56 +0800

Hi Coco,

kernel test robot noticed the following build errors:

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

url:    https://github.com/intel-lab-lkp/linux/commits/Coco-Li/Documentations-Analyze-heavily-used-Networking-related-structs/20231114-073648
base:   net-next/main
patch link:    https://lore.kernel.org/r/20231113233301.1020992-5-lixiaoyan%40google.com
patch subject: [PATCH v7 net-next 4/5] net-device: reorganize net_device fast path variables
config: powerpc-mpc8313_rdb_defconfig (https://download.01.org/0day-ci/archive/20231116/[email-masked]/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231116/[email-masked]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email-masked]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email-masked]/

All errors (new ones prefixed by >>):

   net/core/dev.c:4079:1: warning: unused function 'sch_handle_ingress' [-Wunused-function]
    4079 | sch_handle_ingress(struct sk_buff *skb, struct packet_type **pt_prev, int *ret,
         | ^
   net/core/dev.c:4086:1: warning: unused function 'sch_handle_egress' [-Wunused-function]
    4086 | sch_handle_egress(struct sk_buff *skb, int *ret, struct net_device *dev)
         | ^
   net/core/dev.c:5296:19: warning: unused function 'nf_ingress' [-Wunused-function]
    5296 | static inline int nf_ingress(struct sk_buff *skb, struct packet_type **pt_prev,
         |                   ^
>> net/core/dev.c:11547:2: error: call to '__compiletime_assert_971' declared with 'error' attribute: BUILD_BUG_ON failed: offsetof(struct net_device, __cacheline_group_end__net_device_read_txrx) - offsetofend(struct net_device, __cacheline_group_begin__net_device_read_txrx) > 24
    11547 |         CACHELINE_ASSERT_GROUP_SIZE(struct net_device, net_device_read_txrx, 24);
          |         ^
   include/linux/cache.h:108:2: note: expanded from macro 'CACHELINE_ASSERT_GROUP_SIZE'
     108 |         BUILD_BUG_ON(offsetof(TYPE, __cacheline_group_end__##GROUP) - \
         |         ^
   include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
      50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
         |         ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
      39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
         |                                     ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:423:2: note: expanded from macro '_compiletime_assert'
     423 |         __compiletime_assert(condition, msg, prefix, suffix)
         |         ^
   include/linux/compiler_types.h:416:4: note: expanded from macro '__compiletime_assert'
     416 |                         prefix ## suffix();                             \
         |                         ^
   <scratch space>:11:1: note: expanded from here
      11 | __compiletime_assert_971
         | ^
   3 warnings and 1 error generated.

vim +11547 net/core/dev.c

 11515	
 11516	static void __init net_dev_struct_check(void)
 11517	{
 11518		/* TX read-mostly hotpath */
 11519		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, priv_flags);
 11520		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, netdev_ops);
 11521		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, header_ops);
 11522		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, _tx);
 11523		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, real_num_tx_queues);
 11524		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, gso_max_size);
 11525		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, gso_ipv4_max_size);
 11526		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, gso_max_segs);
 11527		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, num_tc);
 11528		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, mtu);
 11529		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, needed_headroom);
 11530		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, tc_to_txq);
 11531	#ifdef CONFIG_XPS
 11532		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, xps_maps);
 11533	#endif
 11534	#ifdef CONFIG_NETFILTER_EGRESS
 11535		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, nf_hooks_egress);
 11536	#endif
 11537	#ifdef CONFIG_NET_XGRESS
 11538		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_tx, tcx_egress);
 11539	#endif
 11540		CACHELINE_ASSERT_GROUP_SIZE(struct net_device, net_device_read_tx, 152);
 11541	
 11542		/* TXRX read-mostly hotpath */
 11543		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_txrx, flags);
 11544		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_txrx, hard_header_len);
 11545		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_txrx, features);
 11546		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_txrx, ip6_ptr);
 11547		CACHELINE_ASSERT_GROUP_SIZE(struct net_device, net_device_read_txrx, 24);
 11548	
 11549		/* RX read-mostly hotpath */
 11550		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, ptype_specific);
 11551		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, ifindex);
 11552		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, real_num_rx_queues);
 11553		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, _rx);
 11554		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, gro_flush_timeout);
 11555		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, napi_defer_hard_irqs);
 11556		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, gro_max_size);
 11557		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, gro_ipv4_max_size);
 11558		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, rx_handler);
 11559		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, rx_handler_data);
 11560		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, nd_net);
 11561	#ifdef CONFIG_NETPOLL
 11562		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, npinfo);
 11563	#endif
 11564	#ifdef CONFIG_NET_XGRESS
 11565		CACHELINE_ASSERT_GROUP_MEMBER(struct net_device, net_device_read_rx, tcx_ingress);
 11566	#endif
 11567		CACHELINE_ASSERT_GROUP_SIZE(struct net_device, net_device_read_rx, 96);
 11568	}
 11569	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki