- rcu-introduce-rcu_needs_cpu-interface.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     RCU: introduce rcu_needs_cpu() interface

has been removed from the -mm tree.  Its filename is

     rcu-introduce-rcu_needs_cpu-interface.patch

This patch was probably dropped from -mm because
it has now been merged into a subsystem tree or
into Linus's tree, or because it was folded into
its parent patch in the -mm tree.


From: Heiko Carstens <heiko.carstens@xxxxxxxxxx>,
      "Paul E. McKenney" <paulmck@xxxxxxxxxx>

Introduce rcu_needs_cpu() interface.  This can be used to tell if there
will be a new rcu batch on a cpu soon by looking at the curlist pointer. 
This can be used to avoid to enter a tickless idle state where the cpu
would miss that a new batch is ready when rcu_start_batch would be called
on a different cpu.

Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 include/linux/rcupdate.h |    1 +
 kernel/rcupdate.c        |   19 +++++++++++++++++++
 2 files changed, 20 insertions(+)

diff -puN include/linux/rcupdate.h~rcu-introduce-rcu_needs_cpu-interface include/linux/rcupdate.h
--- devel/include/linux/rcupdate.h~rcu-introduce-rcu_needs_cpu-interface	2006-05-15 09:43:25.000000000 -0700
+++ devel-akpm/include/linux/rcupdate.h	2006-05-15 09:43:25.000000000 -0700
@@ -132,6 +132,7 @@ static inline void rcu_bh_qsctr_inc(int 
 }
 
 extern int rcu_pending(int cpu);
+extern int rcu_needs_cpu(int cpu);
 
 /**
  * rcu_read_lock - mark the beginning of an RCU read-side critical section.
diff -puN kernel/rcupdate.c~rcu-introduce-rcu_needs_cpu-interface kernel/rcupdate.c
--- devel/kernel/rcupdate.c~rcu-introduce-rcu_needs_cpu-interface	2006-05-15 09:43:25.000000000 -0700
+++ devel-akpm/kernel/rcupdate.c	2006-05-15 09:43:25.000000000 -0700
@@ -479,12 +479,31 @@ static int __rcu_pending(struct rcu_ctrl
 	return 0;
 }
 
+/*
+ * Check to see if there is any immediate RCU-related work to be done
+ * by the current CPU, returning 1 if so.  This function is part of the
+ * RCU implementation; it is -not- an exported member of the RCU API.
+ */
 int rcu_pending(int cpu)
 {
 	return __rcu_pending(&rcu_ctrlblk, &per_cpu(rcu_data, cpu)) ||
 		__rcu_pending(&rcu_bh_ctrlblk, &per_cpu(rcu_bh_data, cpu));
 }
 
+/*
+ * Check to see if any future RCU-related work will need to be done
+ * by the current CPU, even if none need be done immediately, returning
+ * 1 if so.  This function is part of the RCU implementation; it is -not-
+ * an exported member of the RCU API.
+ */
+int rcu_needs_cpu(int cpu)
+{
+	struct rcu_data *rdp = &per_cpu(rcu_data, cpu);
+	struct rcu_data *rdp_bh = &per_cpu(rcu_bh_data, cpu);
+
+	return (!!rdp->curlist || !!rdp_bh->curlist || rcu_pending(cpu));
+}
+
 void rcu_check_callbacks(int cpu, int user)
 {
 	if (user || 
_

Patches currently in -mm which might be from heiko.carstens@xxxxxxxxxx are

origin.patch
git-klibc.patch
adjust-handle_irr_event-return-type.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux