Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1595497 > unrolled thread
| Started by | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| First post | 2017-03-08 21:40 +0100 |
| Last post | 2017-03-08 22:00 +0100 |
| Articles | 6 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH RT 0/7] Linux 3.12.70-rt95-rc1 Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 21:40 +0100
[PATCH RT 7/7] Linux 3.12.70-rt95-rc1 Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 21:40 +0100
[PATCH RT 5/7] rt: Drop the removal of _GPL from rt_mutex_destroy()s EXPORT_SYMBOL Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 21:40 +0100
[PATCH RT 3/7] rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from export symbol Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 21:40 +0100
[PATCH RT 6/7] lockdep: Fix compilation error for !CONFIG_MODULES and !CONFIG_SMP Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 21:40 +0100
[PATCH RT 2/7] x86/mm/cpa: avoid wbinvd() for PREEMPT Steven Rostedt <rostedt@goodmis.org> - 2017-03-08 22:00 +0100
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 21:40 +0100 |
| Subject | [PATCH RT 0/7] Linux 3.12.70-rt95-rc1 |
| Message-ID | <tiQxj-3cL-3@gated-at.bofh.it> |
Dear RT Folks,
This is the RT stable review cycle of patch 3.12.70-rt95-rc1.
Please scream at me if I messed something up. Please test the patches too.
The -rc release will be uploaded to kernel.org and will be deleted when
the final release is out. This is just a review release (or release candidate).
The pre-releases will not be pushed to the git repository, only the
final release is.
If all goes well, this patch will be converted to the next main release
on 3/10/2017.
Enjoy,
-- Steve
To build 3.12.70-rt95-rc1 directly, the following patches should be applied:
http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.12.70.xz
http://www.kernel.org/pub/linux/kernel/projects/rt/3.12/patch-3.12.70-rt95-rc1.patch.xz
You can also build from 3.12.70-rt94 by applying the incremental patch:
http://www.kernel.org/pub/linux/kernel/projects/rt/3.12/incr/patch-3.12.70-rt94-rt95-rc1.patch.xz
Changes from 3.12.70-rt94:
---
Dan Murphy (1):
lockdep: Fix compilation error for !CONFIG_MODULES and !CONFIG_SMP
John Ogness (1):
x86/mm/cpa: avoid wbinvd() for PREEMPT
Sebastian Andrzej Siewior (3):
radix-tree: use local locks
rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from export symbol
rt: Drop the removal of _GPL from rt_mutex_destroy()'s EXPORT_SYMBOL
Steven Rostedt (VMware) (1):
Linux 3.12.70-rt95-rc1
Thomas Gleixner (1):
lockdep: Handle statically initialized PER_CPU locks proper
----
arch/x86/mm/pageattr.c | 8 ++++++++
include/linux/module.h | 6 ++++++
include/linux/mutex_rt.h | 5 +++++
include/linux/percpu.h | 1 +
include/linux/radix-tree.h | 12 ++----------
kernel/lockdep.c | 32 +++++++++++++++++++++++---------
kernel/module.c | 36 ++++++++++++++++++++++++------------
lib/radix-tree.c | 23 ++++++++++++++---------
localversion-rt | 2 +-
mm/percpu.c | 37 +++++++++++++++++++++++--------------
10 files changed, 107 insertions(+), 55 deletions(-)
[toc] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 21:40 +0100 |
| Subject | [PATCH RT 7/7] Linux 3.12.70-rt95-rc1 |
| Message-ID | <tiQxl-3cL-45@gated-at.bofh.it> |
| In reply to | #1595497 |
3.12.70-rt95-rc1 stable review patch. If anyone has any objections, please let me know. ------------------ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> --- localversion-rt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt index 8d02a9bac500..fe529ae51f64 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt94 +-rt95-rc1 -- 2.10.2
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 21:40 +0100 |
| Subject | [PATCH RT 5/7] rt: Drop the removal of _GPL from rt_mutex_destroy()s EXPORT_SYMBOL |
| Message-ID | <tiQxl-3cL-47@gated-at.bofh.it> |
| In reply to | #1595497 |
3.12.70-rt95-rc1 stable review patch. If anyone has any objections, please let me know. ------------------ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> What we have now should be enough, the EXPORT_SYMBOL statement for rt_mutex_destroy() is not required. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- kernel/rtmutex.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c index 63ac099b3b8d..43d98d373809 100644 --- a/kernel/rtmutex.c +++ b/kernel/rtmutex.c @@ -2004,7 +2004,8 @@ void rt_mutex_destroy(struct rt_mutex *lock) lock->magic = NULL; #endif } -EXPORT_SYMBOL(rt_mutex_destroy); + +EXPORT_SYMBOL_GPL(rt_mutex_destroy); /** * __rt_mutex_init - initialize the rt lock -- 2.10.2
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 21:40 +0100 |
| Subject | [PATCH RT 3/7] rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from export symbol |
| Message-ID | <tiQxl-3cL-49@gated-at.bofh.it> |
| In reply to | #1595497 |
3.12.70-rt95-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Alex Goins reported that mutex_destroy() on RT will force a GPL only symbol
which won't link and therefore fail on a non-GPL kernel module.
This does not happen on !RT and is a regression on RT which we would like to
avoid.
I try here the easy thing and to not use rt_mutex_destroy() if
CONFIG_DEBUG_MUTEXES is not enabled. This will still break for the DEBUG
configs so instead of adding a wrapper around rt_mutex_destroy() (which we have
for rt_mutex_lock() for instance) I am simply dropping the GPL part from the
export.
Reported-by: Alex Goins <agoins@nvidia.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
include/linux/mutex_rt.h | 5 +++++
kernel/rtmutex.c | 3 +--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h
index c38a44b14da5..e0284edec655 100644
--- a/include/linux/mutex_rt.h
+++ b/include/linux/mutex_rt.h
@@ -43,7 +43,12 @@ extern void __lockfunc _mutex_unlock(struct mutex *lock);
#define mutex_lock_killable(l) _mutex_lock_killable(l)
#define mutex_trylock(l) _mutex_trylock(l)
#define mutex_unlock(l) _mutex_unlock(l)
+
+#ifdef CONFIG_DEBUG_MUTEXES
#define mutex_destroy(l) rt_mutex_destroy(&(l)->lock)
+#else
+static inline void mutex_destroy(struct mutex *lock) {}
+#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
# define mutex_lock_nested(l, s) _mutex_lock_nested(l, s)
diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c
index 43d98d373809..63ac099b3b8d 100644
--- a/kernel/rtmutex.c
+++ b/kernel/rtmutex.c
@@ -2004,8 +2004,7 @@ void rt_mutex_destroy(struct rt_mutex *lock)
lock->magic = NULL;
#endif
}
-
-EXPORT_SYMBOL_GPL(rt_mutex_destroy);
+EXPORT_SYMBOL(rt_mutex_destroy);
/**
* __rt_mutex_init - initialize the rt lock
--
2.10.2
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 21:40 +0100 |
| Subject | [PATCH RT 6/7] lockdep: Fix compilation error for !CONFIG_MODULES and !CONFIG_SMP |
| Message-ID | <tiQxm-3cL-67@gated-at.bofh.it> |
| In reply to | #1595497 |
3.12.70-rt95-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Dan Murphy <dmurphy@ti.com>
When CONFIG_MODULES is not set then it fails to compile in lockdep:
|kernel/locking/lockdep.c: In function 'look_up_lock_class':
|kernel/locking/lockdep.c:684:12: error: implicit declaration of function
| '__is_module_percpu_address' [-Werror=implicit-function-declaration]
If CONFIG_MODULES is set but CONFIG_SMP is not, then it compiles but
fails link at the end:
|kernel/locking/lockdep.c:684: undefined reference to `__is_module_percpu_address'
|kernel/built-in.o:(.debug_addr+0x1e674): undefined reference to `__is_module_percpu_address'
This patch adds the function for both cases.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
[bigeasy: merge the two patches from Dan into one, adapt changelog]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
include/linux/module.h | 5 +++++
kernel/module.c | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/include/linux/module.h b/include/linux/module.h
index 7ae21ed9453d..874504dcc825 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -543,6 +543,11 @@ static inline bool is_module_percpu_address(unsigned long addr)
return false;
}
+static inline bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr)
+{
+ return false;
+}
+
static inline bool is_module_text_address(unsigned long addr)
{
return false;
diff --git a/kernel/module.c b/kernel/module.c
index 4347aa243941..64135e935223 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -604,6 +604,11 @@ bool is_module_percpu_address(unsigned long addr)
return false;
}
+bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr)
+{
+ return false;
+}
+
#endif /* CONFIG_SMP */
#define MODINFO_ATTR(field) \
--
2.10.2
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2017-03-08 22:00 +0100 |
| Subject | [PATCH RT 2/7] x86/mm/cpa: avoid wbinvd() for PREEMPT |
| Message-ID | <tiQQG-3lZ-11@gated-at.bofh.it> |
| In reply to | #1595497 |
3.12.70-rt95-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: John Ogness <john.ogness@linutronix.de>
Although wbinvd() is faster than flushing many individual pages, it
blocks the memory bus for "long" periods of time (>100us), thus
directly causing unusually large latencies on all CPUs, regardless
of any CPU isolation features that may be active.
For 1024 pages, flushing those pages individually can take up to
2200us, but the task remains fully preemptible during that time.
Cc: stable-rt@vger.kernel.org
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
arch/x86/mm/pageattr.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 0fcd960b382a..0fd8d4e4c601 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -210,7 +210,15 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
int in_flags, struct page **pages)
{
unsigned int i, level;
+#ifdef CONFIG_PREEMPT
+ /*
+ * Avoid wbinvd() because it causes latencies on all CPUs,
+ * regardless of any CPU isolation that may be in effect.
+ */
+ unsigned long do_wbinvd = 0;
+#else
unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
+#endif
BUG_ON(irqs_disabled());
--
2.10.2
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web