All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] rcu-tasks: Make RCU Tasks Trace checking for userspace execution
@ 2022-07-17 14:38 Zqiang
  2022-07-17 18:25 ` kernel test robot
  0 siblings, 1 reply; 2+ messages in thread
From: Zqiang @ 2022-07-17 14:38 UTC (permalink / raw)
  To: paulmck, frederic, quic_neeraju, joel; +Cc: rcu, linux-kernel

For RCU tasks trace, the userspace execution is also a valid quiescent
state, if the task is in userspace, the ->trc_reader_nesting should be
zero and if the ->trc_reader_special.b.need_qs is not set, set the
tasks ->trc_reader_special.b.need_qs is TRC_NEED_QS_CHECKED, this cause
grace-period kthread remove it from holdout list if it remains here.

This commit add rcu_tasks_trace_qs() to rcu_flavor_sched_clock_irq()
when the kernel built with no PREEMPT_RCU.

Signed-off-by: Zqiang <qiang1.zhang@intel.com>
---
 kernel/rcu/tree_plugin.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 4152816dd29f..764cc4db4134 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -976,7 +976,7 @@ static void rcu_flavor_sched_clock_irq(int user)
 		 * neither access nor modify, at least not while the
 		 * corresponding CPU is online.
 		 */
-
+		rcu_tasks_trace_qs(current);
 		rcu_qs();
 	}
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] rcu-tasks: Make RCU Tasks Trace checking for userspace execution
  2022-07-17 14:38 [PATCH] rcu-tasks: Make RCU Tasks Trace checking for userspace execution Zqiang
@ 2022-07-17 18:25 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-07-17 18:25 UTC (permalink / raw)
  To: Zqiang, paulmck, frederic, quic_neeraju, joel
  Cc: llvm, kbuild-all, rcu, linux-kernel

Hi Zqiang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on paulmck-rcu/dev]
[also build test ERROR on linus/master v5.19-rc6 next-20220715]
[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/Zqiang/rcu-tasks-Make-RCU-Tasks-Trace-checking-for-userspace-execution/20220717-223556
base:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
config: hexagon-randconfig-r041-20220717 (https://download.01.org/0day-ci/archive/20220718/202207180246.5cKJdGrg-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 45067f8fbf61284839c739807c2da2e2505661eb)
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/intel-lab-lkp/linux/commit/d078656cad783fefa6506b05e7dfd1ce43f23eb0
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Zqiang/rcu-tasks-Make-RCU-Tasks-Trace-checking-for-userspace-execution/20220717-223556
        git checkout d078656cad783fefa6506b05e7dfd1ce43f23eb0
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from kernel/rcu/tree.c:4638:
>> kernel/rcu/tree_plugin.h:979:3: error: call to undeclared function 'rcu_tasks_trace_qs'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
                   rcu_tasks_trace_qs(current);
                   ^
   1 error generated.


vim +/rcu_tasks_trace_qs +979 kernel/rcu/tree_plugin.h

   959	
   960	/*
   961	 * Check to see if this CPU is in a non-context-switch quiescent state,
   962	 * namely user mode and idle loop.
   963	 */
   964	static void rcu_flavor_sched_clock_irq(int user)
   965	{
   966		if (user || rcu_is_cpu_rrupt_from_idle()) {
   967	
   968			/*
   969			 * Get here if this CPU took its interrupt from user
   970			 * mode or from the idle loop, and if this is not a
   971			 * nested interrupt.  In this case, the CPU is in
   972			 * a quiescent state, so note it.
   973			 *
   974			 * No memory barrier is required here because rcu_qs()
   975			 * references only CPU-local variables that other CPUs
   976			 * neither access nor modify, at least not while the
   977			 * corresponding CPU is online.
   978			 */
 > 979			rcu_tasks_trace_qs(current);
   980			rcu_qs();
   981		}
   982	}
   983	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-07-17 18:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-17 14:38 [PATCH] rcu-tasks: Make RCU Tasks Trace checking for userspace execution Zqiang
2022-07-17 18:25 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.