All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] rcu-tasks miscellaneous fixes
@ 2021-08-18  7:28 Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment Neeraj Upadhyay
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

Minor typos in comments and fixes for rcu-tasks.

Neeraj Upadhyay (5):
  rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment
  rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace
  rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace
  rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace
  rcu-tasks: Clarify read side section info for rcu_tasks_rude GP
    primitives

 kernel/rcu/tasks.h | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* [PATCH 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
@ 2021-08-18  7:28 ` Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 2/5] rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace Neeraj Upadhyay
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
---
 kernel/rcu/tasks.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 39cef3c..e62da45 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -996,7 +996,7 @@ static void trc_wait_for_one_reader(struct task_struct *t,
 
 	// If this task is not yet on the holdout list, then we are in
 	// an RCU read-side critical section.  Otherwise, the invocation of
-	// rcu_add_holdout() that added it to the list did the necessary
+	// trc_add_holdout() that added it to the list did the necessary
 	// get_task_struct().  Either way, the task cannot be freed out
 	// from under this code.
 
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* [PATCH 2/5] rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment Neeraj Upadhyay
@ 2021-08-18  7:28 ` Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 3/5] rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace Neeraj Upadhyay
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

In check_all_holdout_tasks_trace(), firstreport is a pointer argument;
so, check the dereferenced value, instead of checking the pointer.

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
---
 kernel/rcu/tasks.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index e62da45..9db7293 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -1134,7 +1134,7 @@ static void check_all_holdout_tasks_trace(struct list_head *hop,
 	cpus_read_unlock();
 
 	if (needreport) {
-		if (firstreport)
+		if (*firstreport)
 			pr_err("INFO: rcu_tasks_trace detected stalls? (Late IPI?)\n");
 		show_stalled_ipi_trace();
 	}
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* [PATCH 3/5] rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 2/5] rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace Neeraj Upadhyay
@ 2021-08-18  7:28 ` Neeraj Upadhyay
  2021-08-18  7:28 ` [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace Neeraj Upadhyay
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

Correct the check for no_hz_full cpu in show_stalled_task_trace(),
to include cpu 0.

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
---
 kernel/rcu/tasks.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 9db7293..244e06a 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -1091,7 +1091,7 @@ static void show_stalled_task_trace(struct task_struct *t, bool *firstreport)
 		 t->pid,
 		 ".I"[READ_ONCE(t->trc_ipi_to_cpu) > 0],
 		 ".i"[is_idle_task(t)],
-		 ".N"[cpu > 0 && tick_nohz_full_cpu(cpu)],
+		 ".N"[cpu >= 0 && tick_nohz_full_cpu(cpu)],
 		 READ_ONCE(t->trc_reader_nesting),
 		 " N"[!!READ_ONCE(t->trc_reader_special.b.need_qs)],
 		 cpu);
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
                   ` (2 preceding siblings ...)
  2021-08-18  7:28 ` [PATCH 3/5] rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace Neeraj Upadhyay
@ 2021-08-18  7:28 ` Neeraj Upadhyay
  2021-08-18 15:46   ` Paul E. McKenney
  2021-08-18  7:28 ` [PATCH 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives Neeraj Upadhyay
  2021-08-18 15:50 ` [PATCH 0/5] rcu-tasks miscellaneous fixes Paul E. McKenney
  5 siblings, 1 reply; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

call_rcu_tasks_trace() does have read-side primitives - rcu_read_lock_trace()
and rcu_read_unlock_trace(). Fix this information in the comments.

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
---
 kernel/rcu/tasks.h | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 244e06a..5f9c14c 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -1214,13 +1214,9 @@ static void exit_tasks_rcu_finish_trace(struct task_struct *t)
  *
  * The callback function will be invoked some time after a full grace
  * period elapses, in other words after all currently executing RCU
- * read-side critical sections have completed. call_rcu_tasks_trace()
- * assumes that the read-side critical sections end at context switch,
- * cond_resched_rcu_qs(), or transition to usermode execution.  As such,
- * there are no read-side primitives analogous to rcu_read_lock() and
- * rcu_read_unlock() because this primitive is intended to determine
- * that all tasks have passed through a safe state, not so much for
- * data-structure synchronization.
+ * read-side critical sections have completed. These read-side
+ * critical sections are delimited by calls to rcu_read_lock_trace()
+ * and rcu_read_unlock_trace().
  *
  * See the description of call_rcu() for more detailed information on
  * memory ordering guarantees.
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* [PATCH 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
                   ` (3 preceding siblings ...)
  2021-08-18  7:28 ` [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace Neeraj Upadhyay
@ 2021-08-18  7:28 ` Neeraj Upadhyay
  2021-08-18 15:50 ` [PATCH 0/5] rcu-tasks miscellaneous fixes Paul E. McKenney
  5 siblings, 0 replies; 8+ messages in thread
From: Neeraj Upadhyay @ 2021-08-18  7:28 UTC (permalink / raw)
  To: paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: rcu, linux-kernel, urezki, frederic, boqun.feng, Neeraj Upadhyay

RCU tasks rude variant does not check whether the current
running context on a CPU is usermode. Read side critical section ends
on transition to usermode execution, by the virtue of usermode
execution being schedulable. Clarify this in comments for
call_rcu_tasks_rude() and synchronize_rcu_tasks_rude().

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
---
 kernel/rcu/tasks.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 5f9c14c..702a4fa 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -677,11 +677,11 @@ DEFINE_RCU_TASKS(rcu_tasks_rude, rcu_tasks_rude_wait_gp, call_rcu_tasks_rude,
  * period elapses, in other words after all currently executing RCU
  * read-side critical sections have completed. call_rcu_tasks_rude()
  * assumes that the read-side critical sections end at context switch,
- * cond_resched_rcu_qs(), or transition to usermode execution.  As such,
- * there are no read-side primitives analogous to rcu_read_lock() and
- * rcu_read_unlock() because this primitive is intended to determine
- * that all tasks have passed through a safe state, not so much for
- * data-structure synchronization.
+ * cond_resched_rcu_qs(), or transition to usermode execution (as
+ * usermode execution is schedulable). As such, there are no read-side
+ * primitives analogous to rcu_read_lock() and rcu_read_unlock() because
+ * this primitive is intended to determine that all tasks have passed
+ * through a safe state, not so much for data-structure synchronization.
  *
  * See the description of call_rcu() for more detailed information on
  * memory ordering guarantees.
@@ -699,8 +699,8 @@ EXPORT_SYMBOL_GPL(call_rcu_tasks_rude);
  * grace period has elapsed, in other words after all currently
  * executing rcu-tasks read-side critical sections have elapsed.  These
  * read-side critical sections are delimited by calls to schedule(),
- * cond_resched_tasks_rcu_qs(), userspace execution, and (in theory,
- * anyway) cond_resched().
+ * cond_resched_tasks_rcu_qs(), userspace execution (which is a schedulable
+ * context), and (in theory, anyway) cond_resched().
  *
  * This is a very specialized primitive, intended only for a few uses in
  * tracing and other situations requiring manipulation of function preambles
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
hosted by The Linux Foundation


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

* Re: [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace
  2021-08-18  7:28 ` [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace Neeraj Upadhyay
@ 2021-08-18 15:46   ` Paul E. McKenney
  0 siblings, 0 replies; 8+ messages in thread
From: Paul E. McKenney @ 2021-08-18 15:46 UTC (permalink / raw)
  To: Neeraj Upadhyay
  Cc: josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, rcu,
	linux-kernel, urezki, frederic, boqun.feng

On Wed, Aug 18, 2021 at 12:58:42PM +0530, Neeraj Upadhyay wrote:
> call_rcu_tasks_trace() does have read-side primitives - rcu_read_lock_trace()
> and rcu_read_unlock_trace(). Fix this information in the comments.
> 
> Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
> ---
>  kernel/rcu/tasks.h | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
> index 244e06a..5f9c14c 100644
> --- a/kernel/rcu/tasks.h
> +++ b/kernel/rcu/tasks.h
> @@ -1214,13 +1214,9 @@ static void exit_tasks_rcu_finish_trace(struct task_struct *t)
>   *
>   * The callback function will be invoked some time after a full grace
>   * period elapses, in other words after all currently executing RCU
> - * read-side critical sections have completed. call_rcu_tasks_trace()
> - * assumes that the read-side critical sections end at context switch,
> - * cond_resched_rcu_qs(), or transition to usermode execution.  As such,
> - * there are no read-side primitives analogous to rcu_read_lock() and
> - * rcu_read_unlock() because this primitive is intended to determine
> - * that all tasks have passed through a safe state, not so much for
> - * data-structure synchronization.
> + * read-side critical sections have completed. These read-side

The above line should start "Tasks Trace read-side critical..." for
the benefit of people who stop reading before the next sentence.  :-/

							Thanx, Paul

> + * critical sections are delimited by calls to rcu_read_lock_trace()
> + * and rcu_read_unlock_trace().
>   *
>   * See the description of call_rcu() for more detailed information on
>   * memory ordering guarantees.
> -- 
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
> hosted by The Linux Foundation
> 

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

* Re: [PATCH 0/5] rcu-tasks miscellaneous fixes
  2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
                   ` (4 preceding siblings ...)
  2021-08-18  7:28 ` [PATCH 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives Neeraj Upadhyay
@ 2021-08-18 15:50 ` Paul E. McKenney
  5 siblings, 0 replies; 8+ messages in thread
From: Paul E. McKenney @ 2021-08-18 15:50 UTC (permalink / raw)
  To: Neeraj Upadhyay
  Cc: josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, rcu,
	linux-kernel, urezki, frederic, boqun.feng

On Wed, Aug 18, 2021 at 12:58:38PM +0530, Neeraj Upadhyay wrote:
> Minor typos in comments and fixes for rcu-tasks.

I queued all but 4/5 for review and testing, thank you!!!

4/5 needs a slight fix that I cannot do in the patch itself.

							Thanx, Paul

> Neeraj Upadhyay (5):
>   rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment
>   rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace
>   rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace
>   rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace
>   rcu-tasks: Clarify read side section info for rcu_tasks_rude GP
>     primitives
> 
>  kernel/rcu/tasks.h | 30 +++++++++++++-----------------
>  1 file changed, 13 insertions(+), 17 deletions(-)
> 
> -- 
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
> hosted by The Linux Foundation
> 

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

end of thread, other threads:[~2021-08-18 15:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-18  7:28 [PATCH 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
2021-08-18  7:28 ` [PATCH 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment Neeraj Upadhyay
2021-08-18  7:28 ` [PATCH 2/5] rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace Neeraj Upadhyay
2021-08-18  7:28 ` [PATCH 3/5] rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace Neeraj Upadhyay
2021-08-18  7:28 ` [PATCH 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace Neeraj Upadhyay
2021-08-18 15:46   ` Paul E. McKenney
2021-08-18  7:28 ` [PATCH 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives Neeraj Upadhyay
2021-08-18 15:50 ` [PATCH 0/5] rcu-tasks miscellaneous fixes Paul E. McKenney

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.