Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 291064 Details for
Bug 427998
RHEL4: Can enter no tick idle mode with RCU pending leading to hang
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Git 986733e01d258c26107f1da9d8d47c718349ad2f backported to 2.6.9-67.EL
git-986733e01d258c26107f1da9d8d47c718349ad2f (text/plain), 2.29 KB, created by
Ian Campbell
on 2008-01-08 16:21:55 UTC
(
hide
)
Description:
Git 986733e01d258c26107f1da9d8d47c718349ad2f backported to 2.6.9-67.EL
Filename:
MIME Type:
Creator:
Ian Campbell
Created:
2008-01-08 16:21:55 UTC
Size:
2.29 KB
patch
obsolete
>commit 986733e01d258c26107f1da9d8d47c718349ad2f >Author: Heiko Carstens <heiko.carstens@de.ibm.com> >Date: Mon May 15 09:43:58 2006 -0700 > > [PATCH] RCU: introduce rcu_needs_cpu() interface > > With "Paul E. McKenney" <paulmck@us.ibm.com> > > 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@de.ibm.com> > Cc: "Paul E. McKenney" <paulmck@us.ibm.com> > Signed-off-by: Andrew Morton <akpm@osdl.org> > Signed-off-by: Linus Torvalds <torvalds@osdl.org> > >diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h >index 5673008..970284f 100644 >--- a/include/linux/rcupdate.h >+++ b/include/linux/rcupdate.h >@@ -132,6 +132,7 @@ static inline void rcu_bh_qsctr_inc(int cpu) > } > > 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 --git a/kernel/rcupdate.c b/kernel/rcupdate.c >index 6d32ff2..2058f88 100644 >--- a/kernel/rcupdate.c >+++ b/kernel/rcupdate.c >@@ -479,12 +479,31 @@ static int __rcu_pending(struct rcu_ctrlblk *rcp, struct rcu_data *rdp) > 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 ||
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 427998
:
291063
| 291064 |
291065
|
291066