rcu.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Neeraj Upadhyay <neeraju@codeaurora.org>
To: paulmck@kernel.org, josh@joshtriplett.org, rostedt@goodmis.org,
	mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
	joel@joelfernandes.org
Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
	urezki@gmail.com, frederic@kernel.org, boqun.feng@gmail.com,
	Neeraj Upadhyay <neeraju@codeaurora.org>
Subject: [PATCH v2 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives
Date: Wed, 25 Aug 2021 12:40:51 +0530	[thread overview]
Message-ID: <1629875451-20628-6-git-send-email-neeraju@codeaurora.org> (raw)
In-Reply-To: <1629875451-20628-1-git-send-email-neeraju@codeaurora.org>

RCU tasks rude variant does not maintain or 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 c5f1c2f..691defa 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


      parent reply	other threads:[~2021-08-25  7:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25  7:10 [PATCH v2 0/5] rcu-tasks miscellaneous fixes Neeraj Upadhyay
2021-08-25  7:10 ` [PATCH v2 1/5] rcu-tasks: Fix s/rcu_add_holdout/trc_add_holdout/ typo in comment Neeraj Upadhyay
2021-08-25  7:10 ` [PATCH v2 2/5] rcu-tasks: Correct firstreport usage in check_all_holdout_tasks_trace Neeraj Upadhyay
2021-08-25  7:10 ` [PATCH v2 3/5] rcu-tasks: Correct check for no_hz_full cpu in show_stalled_task_trace Neeraj Upadhyay
2021-08-25  7:10 ` [PATCH v2 4/5] rcu-tasks: Fix read-side primitives comment for call_rcu_tasks_trace Neeraj Upadhyay
2021-08-25 17:08   ` Paul E. McKenney
2021-08-25  7:10 ` Neeraj Upadhyay [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1629875451-20628-6-git-send-email-neeraju@codeaurora.org \
    --to=neeraju@codeaurora.org \
    --cc=boqun.feng@gmail.com \
    --cc=frederic@kernel.org \
    --cc=jiangshanlai@gmail.com \
    --cc=joel@joelfernandes.org \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=urezki@gmail.com \
    --subject='Re: [PATCH v2 5/5] rcu-tasks: Clarify read side section info for rcu_tasks_rude GP primitives' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).