public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* Re: [RFC PATCH v2 3/5] kernel: introduce general hq-lock support
       [not found] <20251206062106.2109014-4-stepanov.anatoly@huawei.com>
@ 2025-12-07 15:39 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-07 15:39 UTC (permalink / raw)
  To: Anatoly Stepanov; +Cc: llvm, oe-kbuild-all

Hi Anatoly,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/locking/core]
[also build test WARNING on tip/x86/core arnd-asm-generic/master v6.18]
[cannot apply to linus/master next-20251205]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Anatoly-Stepanov/kernel-introduce-Hierarchical-Queued-spinlock/20251206-070428
base:   tip/locking/core
patch link:    https://lore.kernel.org/r/20251206062106.2109014-4-stepanov.anatoly%40huawei.com
patch subject: [RFC PATCH v2 3/5] kernel: introduce general hq-lock support
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20251207/202512072334.p6FnpvnH-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251207/202512072334.p6FnpvnH-lkp@intel.com/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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512072334.p6FnpvnH-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from kernel/locking/qspinlock.c:423:
>> kernel/locking/hqlock_core.h:611:17: warning: variable 'node_tail' set but not used [-Wunused-but-set-variable]
     611 |         u16 node_head, node_tail;
         |                        ^
   1 warning generated.


vim +/node_tail +611 kernel/locking/hqlock_core.h

1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  597  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  598  static inline void handoff_remote(struct qspinlock *lock,
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  599  						struct numa_qnode *qnode,
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  600  						u32 tail, int handoff_info)
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  601  {
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  602  	struct numa_queue *next_queue = NULL;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  603  	struct mcs_spinlock *mcs_head = NULL;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  604  	struct numa_qnode *qhead = NULL;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  605  	u16 lock_id = qnode->lock_id;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  606  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  607  	struct lock_metadata *lock_meta = get_meta(lock_id);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  608  	struct numa_queue *queue = get_local_queue(qnode);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  609  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  610  	u16 next_node_id;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06 @611  	u16 node_head, node_tail;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  612  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  613  	node_tail = READ_ONCE(lock_meta->tail_node);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  614  	node_head = READ_ONCE(lock_meta->head_node);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  615  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  616  	/*
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  617  	 * 'handoffs_not_head > 0' means at the head of NUMA-level queue we have a node
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  618  	 * which is heavily loaded and has performed a remote handoff upon reaching the threshold.
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  619  	 *
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  620  	 * Perform handoff to the head instead of next node in the NUMA-level queue,
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  621  	 * if handoffs_not_head >= nr_online_nodes
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  622  	 * (It means other contended nodes have been taking the lock at least once after the head one)
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  623  	 */
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  624  	u16 handoffs_not_head = READ_ONCE(queue->handoffs_not_head);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  625  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  626  	if (handoff_info > 0 && (handoffs_not_head < nr_online_nodes)) {
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  627  		next_node_id = handoff_info;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  628  		if (node_head != qnode->numa_node)
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  629  			handoffs_not_head++;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  630  	} else {
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  631  		if (!node_head) {
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  632  			/* If we're here - we have defintely other node-contenders, let's wait */
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  633  			next_node_id = smp_cond_load_relaxed(&lock_meta->head_node, (VAL));
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  634  		} else {
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  635  			next_node_id = node_head;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  636  		}
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  637  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  638  		handoffs_not_head = 0;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  639  	}
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  640  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  641  	next_queue = get_queue(lock_id, next_node_id);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  642  	WRITE_ONCE(next_queue->handoffs_not_head, handoffs_not_head);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  643  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  644  	qhead = READ_ONCE(next_queue->head);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  645  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  646  	mcs_head = (void *) qhead;
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  647  
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  648  	/* arch_mcs_spin_unlock_contended implies smp-barrier */
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  649  	arch_mcs_spin_unlock_contended(&mcs_head->locked);
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  650  }
1b1736c3ff9c9f Anatoly Stepanov 2025-12-06  651  

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-07 15:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20251206062106.2109014-4-stepanov.anatoly@huawei.com>
2025-12-07 15:39 ` [RFC PATCH v2 3/5] kernel: introduce general hq-lock support kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox