[rt] Update to 4.16.8-rt3
This commit is contained in:
parent
b1a9e2470a
commit
baa5254a6f
|
@ -374,6 +374,7 @@ linux (4.16.10-1) UNRELEASED; urgency=medium
|
|||
[ Ben Hutchings ]
|
||||
* kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
|
||||
* Bump ABI to 2
|
||||
* [rt] Update to 4.16.8-rt3
|
||||
|
||||
[ Salvatore Bonaccorso ]
|
||||
* [rt] Update to 4.16.7-rt1 and reenable
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
Date: Wed, 18 Apr 2018 12:51:38 +0200
|
||||
Subject: [PATCH 1/6] ARM: at91: add TCB registers definitions
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add registers and bits definitions for the timer counter blocks found on
|
||||
Atmel ARM SoCs.
|
||||
|
|
103
debian/patches/features/all/rt/0001-bdi-use-refcount_t-for-reference-counting-instead-at.patch
vendored
Normal file
103
debian/patches/features/all/rt/0001-bdi-use-refcount_t-for-reference-counting-instead-at.patch
vendored
Normal file
|
@ -0,0 +1,103 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 7 May 2018 16:51:09 +0200
|
||||
Subject: [PATCH] bdi: use refcount_t for reference counting instead atomic_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
refcount_t type and corresponding API should be used instead of atomic_t when
|
||||
the variable is used as a reference counter. This allows to avoid accidental
|
||||
refcounter overflows that might lead to use-after-free situations.
|
||||
|
||||
Suggested-by: Peter Zijlstra <peterz@infradead.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
include/linux/backing-dev-defs.h | 3 ++-
|
||||
include/linux/backing-dev.h | 4 ++--
|
||||
mm/backing-dev.c | 12 ++++++------
|
||||
3 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
--- a/include/linux/backing-dev-defs.h
|
||||
+++ b/include/linux/backing-dev-defs.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/kref.h>
|
||||
+#include <linux/refcount.h>
|
||||
|
||||
struct page;
|
||||
struct device;
|
||||
@@ -76,7 +77,7 @@ enum wb_reason {
|
||||
*/
|
||||
struct bdi_writeback_congested {
|
||||
unsigned long state; /* WB_[a]sync_congested flags */
|
||||
- atomic_t refcnt; /* nr of attached wb's and blkg */
|
||||
+ refcount_t refcnt; /* nr of attached wb's and blkg */
|
||||
|
||||
#ifdef CONFIG_CGROUP_WRITEBACK
|
||||
struct backing_dev_info *__bdi; /* the associated bdi, set to NULL
|
||||
--- a/include/linux/backing-dev.h
|
||||
+++ b/include/linux/backing-dev.h
|
||||
@@ -403,13 +403,13 @@ static inline bool inode_cgwb_enabled(st
|
||||
static inline struct bdi_writeback_congested *
|
||||
wb_congested_get_create(struct backing_dev_info *bdi, int blkcg_id, gfp_t gfp)
|
||||
{
|
||||
- atomic_inc(&bdi->wb_congested->refcnt);
|
||||
+ refcount_inc(&bdi->wb_congested->refcnt);
|
||||
return bdi->wb_congested;
|
||||
}
|
||||
|
||||
static inline void wb_congested_put(struct bdi_writeback_congested *congested)
|
||||
{
|
||||
- if (atomic_dec_and_test(&congested->refcnt))
|
||||
+ if (refcount_dec_and_test(&congested->refcnt))
|
||||
kfree(congested);
|
||||
}
|
||||
|
||||
--- a/mm/backing-dev.c
|
||||
+++ b/mm/backing-dev.c
|
||||
@@ -460,10 +460,10 @@ wb_congested_get_create(struct backing_d
|
||||
if (new_congested) {
|
||||
/* !found and storage for new one already allocated, insert */
|
||||
congested = new_congested;
|
||||
- new_congested = NULL;
|
||||
rb_link_node(&congested->rb_node, parent, node);
|
||||
rb_insert_color(&congested->rb_node, &bdi->cgwb_congested_tree);
|
||||
- goto found;
|
||||
+ spin_unlock_irqrestore(&cgwb_lock, flags);
|
||||
+ return congested;
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&cgwb_lock, flags);
|
||||
@@ -473,13 +473,13 @@ wb_congested_get_create(struct backing_d
|
||||
if (!new_congested)
|
||||
return NULL;
|
||||
|
||||
- atomic_set(&new_congested->refcnt, 0);
|
||||
+ refcount_set(&new_congested->refcnt, 1);
|
||||
new_congested->__bdi = bdi;
|
||||
new_congested->blkcg_id = blkcg_id;
|
||||
goto retry;
|
||||
|
||||
found:
|
||||
- atomic_inc(&congested->refcnt);
|
||||
+ refcount_inc(&congested->refcnt);
|
||||
spin_unlock_irqrestore(&cgwb_lock, flags);
|
||||
kfree(new_congested);
|
||||
return congested;
|
||||
@@ -496,7 +496,7 @@ void wb_congested_put(struct bdi_writeba
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
- if (!atomic_dec_and_lock(&congested->refcnt, &cgwb_lock)) {
|
||||
+ if (!refcount_dec_and_lock(&congested->refcnt, &cgwb_lock)) {
|
||||
local_irq_restore(flags);
|
||||
return;
|
||||
}
|
||||
@@ -806,7 +806,7 @@ static int cgwb_bdi_init(struct backing_
|
||||
if (!bdi->wb_congested)
|
||||
return -ENOMEM;
|
||||
|
||||
- atomic_set(&bdi->wb_congested->refcnt, 1);
|
||||
+ refcount_set(&bdi->wb_congested->refcnt, 1);
|
||||
|
||||
err = wb_init(&bdi->wb, bdi, 1, GFP_KERNEL);
|
||||
if (err) {
|
|
@ -2,7 +2,7 @@ From: Al Viro <viro@zeniv.linux.org.uk>
|
|||
Date: Fri, 23 Feb 2018 21:54:18 -0500
|
||||
Subject: [PATCH 01/17] get rid of trylock loop in locking dentries on shrink
|
||||
list
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 3b3f09f48ba78c0634e929849860a6447d057eed
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:33 +0100
|
||||
Subject: [PATCH 01/10] iommu/amd: Take into account that alloc_dev_data() may
|
||||
return NULL
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 39ffe39545cd5cb5b8cee9f0469165cf24dc62c2
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Scott Wood <swood@redhat.com>
|
||||
Date: Sun, 21 Jan 2018 03:28:54 -0600
|
||||
Subject: [PATCH 1/3] iommu/amd: Use raw locks on atomic context paths
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 27790398c2aed917828dc3c6f81240d57f1584c9
|
||||
|
||||
|
|
50
debian/patches/features/all/rt/0001-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch
vendored
Normal file
50
debian/patches/features/all/rt/0001-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 16 May 2018 09:36:43 -0400
|
||||
Subject: [PATCH 1/5] tracing: Add field modifier parsing hist error for hist
|
||||
triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
|
||||
[ commit dcf234577cd31fa16874e828b90659166ad6b80d ]
|
||||
|
||||
If the user specifies an invalid field modifier for a hist trigger,
|
||||
the current code correctly flags that as an error, but doesn't tell
|
||||
the user what happened.
|
||||
|
||||
Fix this by invoking hist_err() with an appropriate message when
|
||||
invalid modifiers are specified.
|
||||
|
||||
Before:
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.junkusecs' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
-su: echo: write error: Invalid argument
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/hist
|
||||
|
||||
After:
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.junkusecs' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
-su: echo: write error: Invalid argument
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/hist
|
||||
ERROR: Invalid field modifier: junkusecs
|
||||
Last command: keys=pid:ts0=common_timestamp.junkusecs
|
||||
|
||||
Link: http://lkml.kernel.org/r/b043c59fa79acd06a5f14a1d44dee9e5a3cd1248.1524790601.git.tom.zanussi@linux.intel.com
|
||||
|
||||
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/trace/trace_events_hist.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/kernel/trace/trace_events_hist.c
|
||||
+++ b/kernel/trace/trace_events_hist.c
|
||||
@@ -2466,6 +2466,7 @@ parse_field(struct hist_trigger_data *hi
|
||||
else if (strcmp(modifier, "usecs") == 0)
|
||||
*flags |= HIST_FIELD_FL_TIMESTAMP_USECS;
|
||||
else {
|
||||
+ hist_err("Invalid field modifier: ", modifier);
|
||||
field = ERR_PTR(-EINVAL);
|
||||
goto out;
|
||||
}
|
|
@ -2,7 +2,7 @@ From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
|||
Date: Wed, 18 Apr 2018 12:51:39 +0200
|
||||
Subject: [PATCH 2/6] clocksource/drivers: Add a new driver for the Atmel ARM
|
||||
TC blocks
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add a driver for the Atmel Timer Counter Blocks. This driver provides a
|
||||
clocksource and two clockevent devices.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Scott Wood <swood@redhat.com>
|
||||
Date: Sun, 28 Jan 2018 14:22:19 -0600
|
||||
Subject: [PATCH 2/3] iommu/amd: Don't use dev_data in irte_ga_set_affinity()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 01ee04badefd296eb7a4430497373be9b7b16783
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 22 Mar 2018 16:22:34 +0100
|
||||
Subject: [PATCH 02/10] iommu/amd: Turn dev_data_list into a lock less list
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 779da73273fc4c4c6f41579a95e4fb7880a1720e
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Fri, 23 Feb 2018 22:07:35 -0500
|
||||
Subject: [PATCH 02/17] now lock_parent() can't run into killed dentry
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 65d8eb5a8f5480756105173de147ef5d60163e2f
|
||||
|
||||
|
|
50
debian/patches/features/all/rt/0002-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch
vendored
Normal file
50
debian/patches/features/all/rt/0002-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 16 May 2018 09:36:44 -0400
|
||||
Subject: [PATCH 2/5] tracing: Add field parsing hist error for hist triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
|
||||
[ commit 5ec432d7bf9dd3b4a2b84f8974e3adb71f45fb1d ]
|
||||
|
||||
If the user specifies a nonexistent field for a hist trigger, the
|
||||
current code correctly flags that as an error, but doesn't tell the
|
||||
user what happened.
|
||||
|
||||
Fix this by invoking hist_err() with an appropriate message when
|
||||
nonexistent fields are specified.
|
||||
|
||||
Before:
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.usecs' >> /sys/kernel/debug/tracing/events/sched/sched_switch/trigger
|
||||
-su: echo: write error: Invalid argument
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist
|
||||
|
||||
After:
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.usecs' >> /sys/kernel/debug/tracing/events/sched/sched_switch/trigger
|
||||
-su: echo: write error: Invalid argument
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist
|
||||
ERROR: Couldn't find field: pid
|
||||
Last command: keys=pid:ts0=common_timestamp.usecs
|
||||
|
||||
Link: http://lkml.kernel.org/r/fdc8746969d16906120f162b99dd71c741e0b62c.1524790601.git.tom.zanussi@linux.intel.com
|
||||
|
||||
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Reported-by: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/trace/trace_events_hist.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/kernel/trace/trace_events_hist.c
|
||||
+++ b/kernel/trace/trace_events_hist.c
|
||||
@@ -2482,6 +2482,7 @@ parse_field(struct hist_trigger_data *hi
|
||||
else {
|
||||
field = trace_find_event_field(file->event_call, field_name);
|
||||
if (!field || !field->size) {
|
||||
+ hist_err("Couldn't find field: ", field_name);
|
||||
field = ERR_PTR(-EINVAL);
|
||||
goto out;
|
||||
}
|
83
debian/patches/features/all/rt/0002-userns-use-refcount_t-for-reference-counting-instead.patch
vendored
Normal file
83
debian/patches/features/all/rt/0002-userns-use-refcount_t-for-reference-counting-instead.patch
vendored
Normal file
|
@ -0,0 +1,83 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 7 May 2018 17:09:42 +0200
|
||||
Subject: [PATCH] userns: use refcount_t for reference counting instead
|
||||
atomic_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
refcount_t type and corresponding API should be used instead of atomic_t when
|
||||
the variable is used as a reference counter. This allows to avoid accidental
|
||||
refcounter overflows that might lead to use-after-free situations.
|
||||
|
||||
Suggested-by: Peter Zijlstra <peterz@infradead.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
include/linux/sched/user.h | 5 +++--
|
||||
kernel/user.c | 8 ++++----
|
||||
2 files changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/include/linux/sched/user.h
|
||||
+++ b/include/linux/sched/user.h
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <linux/uidgid.h>
|
||||
#include <linux/atomic.h>
|
||||
+#include <linux/refcount.h>
|
||||
#include <linux/ratelimit.h>
|
||||
|
||||
struct key;
|
||||
@@ -12,7 +13,7 @@ struct key;
|
||||
* Some day this will be a full-fledged user tracking system..
|
||||
*/
|
||||
struct user_struct {
|
||||
- atomic_t __count; /* reference count */
|
||||
+ refcount_t __count; /* reference count */
|
||||
atomic_t processes; /* How many processes does this user have? */
|
||||
atomic_t sigpending; /* How many pending signals does this user have? */
|
||||
#ifdef CONFIG_FANOTIFY
|
||||
@@ -59,7 +60,7 @@ extern struct user_struct root_user;
|
||||
extern struct user_struct * alloc_uid(kuid_t);
|
||||
static inline struct user_struct *get_uid(struct user_struct *u)
|
||||
{
|
||||
- atomic_inc(&u->__count);
|
||||
+ refcount_inc(&u->__count);
|
||||
return u;
|
||||
}
|
||||
extern void free_uid(struct user_struct *);
|
||||
--- a/kernel/user.c
|
||||
+++ b/kernel/user.c
|
||||
@@ -96,7 +96,7 @@ static DEFINE_SPINLOCK(uidhash_lock);
|
||||
|
||||
/* root_user.__count is 1, for init task cred */
|
||||
struct user_struct root_user = {
|
||||
- .__count = ATOMIC_INIT(1),
|
||||
+ .__count = REFCOUNT_INIT(1),
|
||||
.processes = ATOMIC_INIT(1),
|
||||
.sigpending = ATOMIC_INIT(0),
|
||||
.locked_shm = 0,
|
||||
@@ -123,7 +123,7 @@ static struct user_struct *uid_hash_find
|
||||
|
||||
hlist_for_each_entry(user, hashent, uidhash_node) {
|
||||
if (uid_eq(user->uid, uid)) {
|
||||
- atomic_inc(&user->__count);
|
||||
+ refcount_inc(&user->__count);
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -170,7 +170,7 @@ void free_uid(struct user_struct *up)
|
||||
return;
|
||||
|
||||
local_irq_save(flags);
|
||||
- if (atomic_dec_and_lock(&up->__count, &uidhash_lock))
|
||||
+ if (refcount_dec_and_lock(&up->__count, &uidhash_lock))
|
||||
free_user(up, flags);
|
||||
else
|
||||
local_irq_restore(flags);
|
||||
@@ -191,7 +191,7 @@ struct user_struct *alloc_uid(kuid_t uid
|
||||
goto out_unlock;
|
||||
|
||||
new->uid = uid;
|
||||
- atomic_set(&new->__count, 1);
|
||||
+ refcount_set(&new->__count, 1);
|
||||
ratelimit_state_init(&new->ratelimit, HZ, 100);
|
||||
ratelimit_set_flags(&new->ratelimit, RATELIMIT_MSG_ON_RELEASE);
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
Date: Wed, 18 Apr 2018 12:51:40 +0200
|
||||
Subject: [PATCH 3/6] clocksource/drivers: atmel-pit: make option silent
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
To conform with the other option, make the ATMEL_PIT option silent so it
|
||||
can be selected from the platform
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Scott Wood <swood@redhat.com>
|
|||
Date: Wed, 14 Feb 2018 17:36:28 -0600
|
||||
Subject: [PATCH 3/3] iommu/amd: Avoid locking get_irq_table() from atomic
|
||||
context
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit df42a04b15f19a842393dc98a84cbc52b1f8ed49
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:35 +0100
|
||||
Subject: [PATCH 03/10] iommu/amd: Split domain id out of
|
||||
amd_iommu_devtable_lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 2bc00180890427dcc092b2f2b0d03c904bcade29
|
||||
|
||||
|
|
365
debian/patches/features/all/rt/0003-md-raid5-use-refcount_t-for-reference-counting-inste.patch
vendored
Normal file
365
debian/patches/features/all/rt/0003-md-raid5-use-refcount_t-for-reference-counting-inste.patch
vendored
Normal file
|
@ -0,0 +1,365 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 7 May 2018 17:42:52 +0200
|
||||
Subject: [PATCH] md: raid5: use refcount_t for reference counting instead
|
||||
atomic_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
refcount_t type and corresponding API should be used instead of atomic_t when
|
||||
the variable is used as a reference counter. This allows to avoid accidental
|
||||
refcounter overflows that might lead to use-after-free situations.
|
||||
|
||||
Most changes are 1:1 replacements except for
|
||||
BUG_ON(atomic_inc_return(&sh->count) != 1);
|
||||
|
||||
which has been turned into
|
||||
refcount_inc(&sh->count);
|
||||
BUG_ON(refcount_read(&sh->count) != 1);
|
||||
|
||||
Suggested-by: Peter Zijlstra <peterz@infradead.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/md/raid5-cache.c | 8 ++---
|
||||
drivers/md/raid5-ppl.c | 2 -
|
||||
drivers/md/raid5.c | 67 +++++++++++++++++++++++------------------------
|
||||
drivers/md/raid5.h | 4 +-
|
||||
4 files changed, 41 insertions(+), 40 deletions(-)
|
||||
|
||||
--- a/drivers/md/raid5-cache.c
|
||||
+++ b/drivers/md/raid5-cache.c
|
||||
@@ -1049,7 +1049,7 @@ int r5l_write_stripe(struct r5l_log *log
|
||||
* don't delay.
|
||||
*/
|
||||
clear_bit(STRIPE_DELAYED, &sh->state);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
mutex_lock(&log->io_mutex);
|
||||
/* meta + data */
|
||||
@@ -1388,7 +1388,7 @@ static void r5c_flush_stripe(struct r5co
|
||||
lockdep_assert_held(&conf->device_lock);
|
||||
|
||||
list_del_init(&sh->lru);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
set_bit(STRIPE_HANDLE, &sh->state);
|
||||
atomic_inc(&conf->active_stripes);
|
||||
@@ -1491,7 +1491,7 @@ static void r5c_do_reclaim(struct r5conf
|
||||
*/
|
||||
if (!list_empty(&sh->lru) &&
|
||||
!test_bit(STRIPE_HANDLE, &sh->state) &&
|
||||
- atomic_read(&sh->count) == 0) {
|
||||
+ refcount_read(&sh->count) == 0) {
|
||||
r5c_flush_stripe(conf, sh);
|
||||
if (count++ >= R5C_RECLAIM_STRIPE_GROUP)
|
||||
break;
|
||||
@@ -2912,7 +2912,7 @@ int r5c_cache_data(struct r5l_log *log,
|
||||
* don't delay.
|
||||
*/
|
||||
clear_bit(STRIPE_DELAYED, &sh->state);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
mutex_lock(&log->io_mutex);
|
||||
/* meta + data */
|
||||
--- a/drivers/md/raid5-ppl.c
|
||||
+++ b/drivers/md/raid5-ppl.c
|
||||
@@ -388,7 +388,7 @@ int ppl_write_stripe(struct r5conf *conf
|
||||
|
||||
set_bit(STRIPE_LOG_TRAPPED, &sh->state);
|
||||
clear_bit(STRIPE_DELAYED, &sh->state);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
if (ppl_log_stripe(log, sh)) {
|
||||
spin_lock_irq(&ppl_conf->no_mem_stripes_lock);
|
||||
--- a/drivers/md/raid5.c
|
||||
+++ b/drivers/md/raid5.c
|
||||
@@ -306,7 +306,7 @@ static void do_release_stripe(struct r5c
|
||||
static void __release_stripe(struct r5conf *conf, struct stripe_head *sh,
|
||||
struct list_head *temp_inactive_list)
|
||||
{
|
||||
- if (atomic_dec_and_test(&sh->count))
|
||||
+ if (refcount_dec_and_test(&sh->count))
|
||||
do_release_stripe(conf, sh, temp_inactive_list);
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ void raid5_release_stripe(struct stripe_
|
||||
|
||||
/* Avoid release_list until the last reference.
|
||||
*/
|
||||
- if (atomic_add_unless(&sh->count, -1, 1))
|
||||
+ if (refcount_dec_not_one(&sh->count))
|
||||
return;
|
||||
|
||||
if (unlikely(!conf->mddev->thread) ||
|
||||
@@ -411,7 +411,7 @@ void raid5_release_stripe(struct stripe_
|
||||
slow_path:
|
||||
local_irq_save(flags);
|
||||
/* we are ok here if STRIPE_ON_RELEASE_LIST is set or not */
|
||||
- if (atomic_dec_and_lock(&sh->count, &conf->device_lock)) {
|
||||
+ if (refcount_dec_and_lock(&sh->count, &conf->device_lock)) {
|
||||
INIT_LIST_HEAD(&list);
|
||||
hash = sh->hash_lock_index;
|
||||
do_release_stripe(conf, sh, &list);
|
||||
@@ -501,7 +501,7 @@ static void init_stripe(struct stripe_he
|
||||
struct r5conf *conf = sh->raid_conf;
|
||||
int i, seq;
|
||||
|
||||
- BUG_ON(atomic_read(&sh->count) != 0);
|
||||
+ BUG_ON(refcount_read(&sh->count) != 0);
|
||||
BUG_ON(test_bit(STRIPE_HANDLE, &sh->state));
|
||||
BUG_ON(stripe_operations_active(sh));
|
||||
BUG_ON(sh->batch_head);
|
||||
@@ -678,11 +678,11 @@ raid5_get_active_stripe(struct r5conf *c
|
||||
&conf->cache_state);
|
||||
} else {
|
||||
init_stripe(sh, sector, previous);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
}
|
||||
- } else if (!atomic_inc_not_zero(&sh->count)) {
|
||||
+ } else if (!refcount_inc_not_zero(&sh->count)) {
|
||||
spin_lock(&conf->device_lock);
|
||||
- if (!atomic_read(&sh->count)) {
|
||||
+ if (!refcount_read(&sh->count)) {
|
||||
if (!test_bit(STRIPE_HANDLE, &sh->state))
|
||||
atomic_inc(&conf->active_stripes);
|
||||
BUG_ON(list_empty(&sh->lru) &&
|
||||
@@ -698,7 +698,7 @@ raid5_get_active_stripe(struct r5conf *c
|
||||
sh->group = NULL;
|
||||
}
|
||||
}
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
spin_unlock(&conf->device_lock);
|
||||
}
|
||||
} while (sh == NULL);
|
||||
@@ -760,9 +760,9 @@ static void stripe_add_to_batch_list(str
|
||||
hash = stripe_hash_locks_hash(head_sector);
|
||||
spin_lock_irq(conf->hash_locks + hash);
|
||||
head = __find_stripe(conf, head_sector, conf->generation);
|
||||
- if (head && !atomic_inc_not_zero(&head->count)) {
|
||||
+ if (head && !refcount_inc_not_zero(&head->count)) {
|
||||
spin_lock(&conf->device_lock);
|
||||
- if (!atomic_read(&head->count)) {
|
||||
+ if (!refcount_read(&head->count)) {
|
||||
if (!test_bit(STRIPE_HANDLE, &head->state))
|
||||
atomic_inc(&conf->active_stripes);
|
||||
BUG_ON(list_empty(&head->lru) &&
|
||||
@@ -778,7 +778,7 @@ static void stripe_add_to_batch_list(str
|
||||
head->group = NULL;
|
||||
}
|
||||
}
|
||||
- atomic_inc(&head->count);
|
||||
+ refcount_inc(&head->count);
|
||||
spin_unlock(&conf->device_lock);
|
||||
}
|
||||
spin_unlock_irq(conf->hash_locks + hash);
|
||||
@@ -847,7 +847,7 @@ static void stripe_add_to_batch_list(str
|
||||
sh->batch_head->bm_seq = seq;
|
||||
}
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
unlock_out:
|
||||
unlock_two_stripes(head, sh);
|
||||
out:
|
||||
@@ -1110,9 +1110,9 @@ static void ops_run_io(struct stripe_hea
|
||||
pr_debug("%s: for %llu schedule op %d on disc %d\n",
|
||||
__func__, (unsigned long long)sh->sector,
|
||||
bi->bi_opf, i);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
if (sh != head_sh)
|
||||
- atomic_inc(&head_sh->count);
|
||||
+ refcount_inc(&head_sh->count);
|
||||
if (use_new_offset(conf, sh))
|
||||
bi->bi_iter.bi_sector = (sh->sector
|
||||
+ rdev->new_data_offset);
|
||||
@@ -1174,9 +1174,9 @@ static void ops_run_io(struct stripe_hea
|
||||
"replacement disc %d\n",
|
||||
__func__, (unsigned long long)sh->sector,
|
||||
rbi->bi_opf, i);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
if (sh != head_sh)
|
||||
- atomic_inc(&head_sh->count);
|
||||
+ refcount_inc(&head_sh->count);
|
||||
if (use_new_offset(conf, sh))
|
||||
rbi->bi_iter.bi_sector = (sh->sector
|
||||
+ rrdev->new_data_offset);
|
||||
@@ -1354,7 +1354,7 @@ static void ops_run_biofill(struct strip
|
||||
}
|
||||
}
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
init_async_submit(&submit, ASYNC_TX_ACK, tx, ops_complete_biofill, sh, NULL);
|
||||
async_trigger_callback(&submit);
|
||||
}
|
||||
@@ -1432,7 +1432,7 @@ ops_run_compute5(struct stripe_head *sh,
|
||||
if (i != target)
|
||||
xor_srcs[count++] = sh->dev[i].page;
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
init_async_submit(&submit, ASYNC_TX_FENCE|ASYNC_TX_XOR_ZERO_DST, NULL,
|
||||
ops_complete_compute, sh, to_addr_conv(sh, percpu, 0));
|
||||
@@ -1521,7 +1521,7 @@ ops_run_compute6_1(struct stripe_head *s
|
||||
BUG_ON(!test_bit(R5_Wantcompute, &tgt->flags));
|
||||
dest = tgt->page;
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
if (target == qd_idx) {
|
||||
count = set_syndrome_sources(blocks, sh, SYNDROME_SRC_ALL);
|
||||
@@ -1596,7 +1596,7 @@ ops_run_compute6_2(struct stripe_head *s
|
||||
pr_debug("%s: stripe: %llu faila: %d failb: %d\n",
|
||||
__func__, (unsigned long long)sh->sector, faila, failb);
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
|
||||
if (failb == syndrome_disks+1) {
|
||||
/* Q disk is one of the missing disks */
|
||||
@@ -1867,7 +1867,7 @@ ops_run_reconstruct5(struct stripe_head
|
||||
break;
|
||||
}
|
||||
if (i >= sh->disks) {
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
set_bit(R5_Discard, &sh->dev[pd_idx].flags);
|
||||
ops_complete_reconstruct(sh);
|
||||
return;
|
||||
@@ -1908,7 +1908,7 @@ ops_run_reconstruct5(struct stripe_head
|
||||
flags = ASYNC_TX_ACK |
|
||||
(prexor ? ASYNC_TX_XOR_DROP_DST : ASYNC_TX_XOR_ZERO_DST);
|
||||
|
||||
- atomic_inc(&head_sh->count);
|
||||
+ refcount_inc(&head_sh->count);
|
||||
init_async_submit(&submit, flags, tx, ops_complete_reconstruct, head_sh,
|
||||
to_addr_conv(sh, percpu, j));
|
||||
} else {
|
||||
@@ -1950,7 +1950,7 @@ ops_run_reconstruct6(struct stripe_head
|
||||
break;
|
||||
}
|
||||
if (i >= sh->disks) {
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
set_bit(R5_Discard, &sh->dev[sh->pd_idx].flags);
|
||||
set_bit(R5_Discard, &sh->dev[sh->qd_idx].flags);
|
||||
ops_complete_reconstruct(sh);
|
||||
@@ -1974,7 +1974,7 @@ ops_run_reconstruct6(struct stripe_head
|
||||
struct stripe_head, batch_list) == head_sh;
|
||||
|
||||
if (last_stripe) {
|
||||
- atomic_inc(&head_sh->count);
|
||||
+ refcount_inc(&head_sh->count);
|
||||
init_async_submit(&submit, txflags, tx, ops_complete_reconstruct,
|
||||
head_sh, to_addr_conv(sh, percpu, j));
|
||||
} else
|
||||
@@ -2031,7 +2031,7 @@ static void ops_run_check_p(struct strip
|
||||
tx = async_xor_val(xor_dest, xor_srcs, 0, count, STRIPE_SIZE,
|
||||
&sh->ops.zero_sum_result, &submit);
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
init_async_submit(&submit, ASYNC_TX_ACK, tx, ops_complete_check, sh, NULL);
|
||||
tx = async_trigger_callback(&submit);
|
||||
}
|
||||
@@ -2050,7 +2050,7 @@ static void ops_run_check_pq(struct stri
|
||||
if (!checkp)
|
||||
srcs[count] = NULL;
|
||||
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
init_async_submit(&submit, ASYNC_TX_ACK, NULL, ops_complete_check,
|
||||
sh, to_addr_conv(sh, percpu, 0));
|
||||
async_syndrome_val(srcs, 0, count+2, STRIPE_SIZE,
|
||||
@@ -2150,7 +2150,7 @@ static struct stripe_head *alloc_stripe(
|
||||
INIT_LIST_HEAD(&sh->lru);
|
||||
INIT_LIST_HEAD(&sh->r5c);
|
||||
INIT_LIST_HEAD(&sh->log_list);
|
||||
- atomic_set(&sh->count, 1);
|
||||
+ refcount_set(&sh->count, 1);
|
||||
sh->raid_conf = conf;
|
||||
sh->log_start = MaxSector;
|
||||
for (i = 0; i < disks; i++) {
|
||||
@@ -2451,7 +2451,7 @@ static int drop_one_stripe(struct r5conf
|
||||
spin_unlock_irq(conf->hash_locks + hash);
|
||||
if (!sh)
|
||||
return 0;
|
||||
- BUG_ON(atomic_read(&sh->count));
|
||||
+ BUG_ON(refcount_read(&sh->count));
|
||||
shrink_buffers(sh);
|
||||
free_stripe(conf->slab_cache, sh);
|
||||
atomic_dec(&conf->active_stripes);
|
||||
@@ -2483,7 +2483,7 @@ static void raid5_end_read_request(struc
|
||||
break;
|
||||
|
||||
pr_debug("end_read_request %llu/%d, count: %d, error %d.\n",
|
||||
- (unsigned long long)sh->sector, i, atomic_read(&sh->count),
|
||||
+ (unsigned long long)sh->sector, i, refcount_read(&sh->count),
|
||||
bi->bi_status);
|
||||
if (i == disks) {
|
||||
bio_reset(bi);
|
||||
@@ -2620,7 +2620,7 @@ static void raid5_end_write_request(stru
|
||||
}
|
||||
}
|
||||
pr_debug("end_write_request %llu/%d, count %d, error: %d.\n",
|
||||
- (unsigned long long)sh->sector, i, atomic_read(&sh->count),
|
||||
+ (unsigned long long)sh->sector, i, refcount_read(&sh->count),
|
||||
bi->bi_status);
|
||||
if (i == disks) {
|
||||
bio_reset(bi);
|
||||
@@ -4687,7 +4687,7 @@ static void handle_stripe(struct stripe_
|
||||
pr_debug("handling stripe %llu, state=%#lx cnt=%d, "
|
||||
"pd_idx=%d, qd_idx=%d\n, check:%d, reconstruct:%d\n",
|
||||
(unsigned long long)sh->sector, sh->state,
|
||||
- atomic_read(&sh->count), sh->pd_idx, sh->qd_idx,
|
||||
+ refcount_read(&sh->count), sh->pd_idx, sh->qd_idx,
|
||||
sh->check_state, sh->reconstruct_state);
|
||||
|
||||
analyse_stripe(sh, &s);
|
||||
@@ -5062,7 +5062,7 @@ static void activate_bit_delay(struct r5
|
||||
struct stripe_head *sh = list_entry(head.next, struct stripe_head, lru);
|
||||
int hash;
|
||||
list_del_init(&sh->lru);
|
||||
- atomic_inc(&sh->count);
|
||||
+ refcount_inc(&sh->count);
|
||||
hash = sh->hash_lock_index;
|
||||
__release_stripe(conf, sh, &temp_inactive_list[hash]);
|
||||
}
|
||||
@@ -5387,7 +5387,8 @@ static struct stripe_head *__get_priorit
|
||||
sh->group = NULL;
|
||||
}
|
||||
list_del_init(&sh->lru);
|
||||
- BUG_ON(atomic_inc_return(&sh->count) != 1);
|
||||
+ refcount_inc(&sh->count);
|
||||
+ BUG_ON(refcount_read(&sh->count) != 1);
|
||||
return sh;
|
||||
}
|
||||
|
||||
--- a/drivers/md/raid5.h
|
||||
+++ b/drivers/md/raid5.h
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#include <linux/raid/xor.h>
|
||||
#include <linux/dmaengine.h>
|
||||
-
|
||||
+#include <linux/refcount.h>
|
||||
/*
|
||||
*
|
||||
* Each stripe contains one buffer per device. Each buffer can be in
|
||||
@@ -208,7 +208,7 @@ struct stripe_head {
|
||||
short ddf_layout;/* use DDF ordering to calculate Q */
|
||||
short hash_lock_index;
|
||||
unsigned long state; /* state flags */
|
||||
- atomic_t count; /* nr of active thread/requests */
|
||||
+ refcount_t count; /* nr of active thread/requests */
|
||||
int bm_seq; /* sequence number for bitmap flushes */
|
||||
int disks; /* disks in stripe */
|
||||
int overwrite_disks; /* total overwrite disks in stripe,
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Fri, 23 Feb 2018 22:11:34 -0500
|
||||
Subject: [PATCH 03/17] split the slow part of lock_parent() off
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 8b987a46a1e0e93d4cb4babea06ea274e2e2b658
|
||||
|
||||
|
|
66
debian/patches/features/all/rt/0003-tracing-Restore-proper-field-flag-printing-when-disp.patch
vendored
Normal file
66
debian/patches/features/all/rt/0003-tracing-Restore-proper-field-flag-printing-when-disp.patch
vendored
Normal file
|
@ -0,0 +1,66 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 16 May 2018 09:36:45 -0400
|
||||
Subject: [PATCH 3/5] tracing: Restore proper field flag printing when
|
||||
displaying triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
|
||||
[ commit 608940dabe1bd2ce4c97524004ec86637cf80f2c ]
|
||||
|
||||
The flag-printing code used when displaying hist triggers somehow got
|
||||
dropped during refactoring of the inter-event patchset. This restores
|
||||
it.
|
||||
|
||||
Below are a couple examples - in the first case, .usecs wasn't being
|
||||
displayed properly for common_timestamps and the second illustrates
|
||||
the same for other flags such as .execname.
|
||||
|
||||
Before:
|
||||
|
||||
# echo 'hist:key=common_pid.execname:val=count:sort=count' > /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger
|
||||
# cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger
|
||||
hist:keys=common_pid:vals=hitcount,count:sort=count:size=2048 [active]
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
hist:keys=pid:vals=hitcount:ts0=common_timestamp:sort=hitcount:size=2048:clock=global if comm=="cyclictest" [active]
|
||||
|
||||
After:
|
||||
|
||||
# echo 'hist:key=common_pid.execname:val=count:sort=count' > /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger
|
||||
# cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger
|
||||
hist:keys=common_pid.execname:vals=hitcount,count:sort=count:size=2048 [active]
|
||||
|
||||
# echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
|
||||
hist:keys=pid:vals=hitcount:ts0=common_timestamp.usecs:sort=hitcount:size=2048:clock=global if comm=="cyclictest" [active]
|
||||
|
||||
Link: http://lkml.kernel.org/r/492bab42ff21806600af98a8ea901af10efbee0c.1524790601.git.tom.zanussi@linux.intel.com
|
||||
|
||||
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/trace/trace_events_hist.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
--- a/kernel/trace/trace_events_hist.c
|
||||
+++ b/kernel/trace/trace_events_hist.c
|
||||
@@ -4867,6 +4867,16 @@ static void hist_field_print(struct seq_
|
||||
seq_printf(m, "%s", field_name);
|
||||
} else if (hist_field->flags & HIST_FIELD_FL_TIMESTAMP)
|
||||
seq_puts(m, "common_timestamp");
|
||||
+
|
||||
+ if (hist_field->flags) {
|
||||
+ if (!(hist_field->flags & HIST_FIELD_FL_VAR_REF) &&
|
||||
+ !(hist_field->flags & HIST_FIELD_FL_EXPR)) {
|
||||
+ const char *flags = get_hist_field_flags(hist_field);
|
||||
+
|
||||
+ if (flags)
|
||||
+ seq_printf(m, ".%s", flags);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
static int event_hist_trigger_print(struct seq_file *m,
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
Date: Wed, 18 Apr 2018 12:51:41 +0200
|
||||
Subject: [PATCH 4/6] ARM: at91: Implement clocksource selection
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Allow selecting and unselecting the PIT clocksource driver so it doesn't
|
||||
have to be compile when unused.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Al Viro <viro@zeniv.linux.org.uk>
|
|||
Date: Fri, 23 Feb 2018 21:07:24 -0500
|
||||
Subject: [PATCH 04/17] dput(): consolidate the "do we need to retain it?" into
|
||||
an inlined helper
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit a338579f2f3d6a15c78f1dc7de4c248b4183fcea
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:36 +0100
|
||||
Subject: [PATCH 04/10] iommu/amd: Split irq_lookup_table out of the
|
||||
amd_iommu_devtable_lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit ea6166f4b83e9cfba1c18f46a764d50045682fe5
|
||||
|
||||
|
|
69
debian/patches/features/all/rt/0004-locking-refcount-implement-refcount_dec_and_lock_irq.patch
vendored
Normal file
69
debian/patches/features/all/rt/0004-locking-refcount-implement-refcount_dec_and_lock_irq.patch
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
Date: Mon, 7 May 2018 16:44:57 +0200
|
||||
Subject: [PATCH] locking/refcount: implement
|
||||
refcount_dec_and_lock_irqsave()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
There are in-tree users of refcount_dec_and_lock() which must acquire the
|
||||
spin lock with interrupts disabled. To workaround the lack of an irqsave
|
||||
variant of refcount_dec_and_lock() they use local_irq_save() at the call
|
||||
site. This causes extra code and creates in some places unneeded long
|
||||
interrupt disabled times. These places need also extra treatment for
|
||||
PREEMPT_RT due to the disconnect of the irq disabling and the lock
|
||||
function.
|
||||
|
||||
Implement the missing irqsave variant of the function.
|
||||
|
||||
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
[bigeasy: s@atomic_dec_and_lock@refcount_dec_and_lock@g]
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
include/linux/refcount.h | 4 +++-
|
||||
lib/refcount.c | 28 ++++++++++++++++++++++++++++
|
||||
2 files changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/include/linux/refcount.h
|
||||
+++ b/include/linux/refcount.h
|
||||
@@ -98,5 +98,7 @@ extern __must_check bool refcount_dec_if
|
||||
extern __must_check bool refcount_dec_not_one(refcount_t *r);
|
||||
extern __must_check bool refcount_dec_and_mutex_lock(refcount_t *r, struct mutex *lock);
|
||||
extern __must_check bool refcount_dec_and_lock(refcount_t *r, spinlock_t *lock);
|
||||
-
|
||||
+extern __must_check bool refcount_dec_and_lock_irqsave(refcount_t *r,
|
||||
+ spinlock_t *lock,
|
||||
+ unsigned long *flags);
|
||||
#endif /* _LINUX_REFCOUNT_H */
|
||||
--- a/lib/refcount.c
|
||||
+++ b/lib/refcount.c
|
||||
@@ -350,3 +350,31 @@ bool refcount_dec_and_lock(refcount_t *r
|
||||
}
|
||||
EXPORT_SYMBOL(refcount_dec_and_lock);
|
||||
|
||||
+/**
|
||||
+ * refcount_dec_and_lock_irqsave - return holding spinlock with disabled
|
||||
+ * interrupts if able to decrement refcount to 0
|
||||
+ * @r: the refcount
|
||||
+ * @lock: the spinlock to be locked
|
||||
+ * @flags: saved IRQ-flags if the is acquired
|
||||
+ *
|
||||
+ * Same as refcount_dec_and_lock() above except that the spinlock is acquired
|
||||
+ * with disabled interupts.
|
||||
+ *
|
||||
+ * Return: true and hold spinlock if able to decrement refcount to 0, false
|
||||
+ * otherwise
|
||||
+ */
|
||||
+bool refcount_dec_and_lock_irqsave(refcount_t *r, spinlock_t *lock,
|
||||
+ unsigned long *flags)
|
||||
+{
|
||||
+ if (refcount_dec_not_one(r))
|
||||
+ return false;
|
||||
+
|
||||
+ spin_lock_irqsave(lock, *flags);
|
||||
+ if (!refcount_dec_and_test(r)) {
|
||||
+ spin_unlock_irqrestore(lock, *flags);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+EXPORT_SYMBOL(refcount_dec_and_lock_irqsave);
|
37
debian/patches/features/all/rt/0004-tracing-Uninitialized-variable-in-create_tracing_map.patch
vendored
Normal file
37
debian/patches/features/all/rt/0004-tracing-Uninitialized-variable-in-create_tracing_map.patch
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 16 May 2018 09:36:46 -0400
|
||||
Subject: [PATCH 4/5] tracing: Uninitialized variable in
|
||||
create_tracing_map_fields()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
From: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
|
||||
[ commit b28d7b2dc27f0eef1ae608b49d6860f2463910f1 ]
|
||||
|
||||
Smatch complains that idx can be used uninitialized when we check if
|
||||
(idx < 0). It has to be the first iteration through the loop and the
|
||||
HIST_FIELD_FL_STACKTRACE bit has to be clear and the HIST_FIELD_FL_VAR
|
||||
bit has to be set to reach the bug.
|
||||
|
||||
Link: http://lkml.kernel.org/r/20180328114815.GC29050@mwanda
|
||||
|
||||
Fixes: 30350d65ac56 ("tracing: Add variable support to hist triggers")
|
||||
Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/trace/trace_events_hist.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/kernel/trace/trace_events_hist.c
|
||||
+++ b/kernel/trace/trace_events_hist.c
|
||||
@@ -4412,7 +4412,7 @@ static int create_tracing_map_fields(str
|
||||
struct tracing_map *map = hist_data->map;
|
||||
struct ftrace_event_field *field;
|
||||
struct hist_field *hist_field;
|
||||
- int i, idx;
|
||||
+ int i, idx = 0;
|
||||
|
||||
for_each_hist_field(i, hist_data) {
|
||||
hist_field = hist_data->fields[i];
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
Date: Wed, 18 Apr 2018 12:51:42 +0200
|
||||
Subject: [PATCH 5/6] ARM: configs: at91: use new TCB timer driver
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
|
||||
timer-atmel-tcb.
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
Date: Wed, 4 Apr 2018 11:43:56 +0200
|
||||
Subject: [PATCH] mm/backing-dev: Use irqsave variant of
|
||||
atomic_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Subject: [PATCH] bdi: Use irqsave variant of refcount_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The irqsave variant of atomic_dec_and_lock handles irqsave/restore when
|
||||
The irqsave variant of refcount_dec_and_lock handles irqsave/restore when
|
||||
taking/releasing the spin lock. With this variant the call of
|
||||
local_irq_save/restore is no longer required.
|
||||
|
||||
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
[bigeasy: s@atomic_dec_and_lock@refcount_dec_and_lock@g ]
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
mm/backing-dev.c | 5 +----
|
||||
|
@ -21,9 +21,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
unsigned long flags;
|
||||
|
||||
- local_irq_save(flags);
|
||||
- if (!atomic_dec_and_lock(&congested->refcnt, &cgwb_lock)) {
|
||||
- if (!refcount_dec_and_lock(&congested->refcnt, &cgwb_lock)) {
|
||||
- local_irq_restore(flags);
|
||||
+ if (!atomic_dec_and_lock_irqsave(&congested->refcnt, &cgwb_lock, flags))
|
||||
+ if (!refcount_dec_and_lock_irqsave(&congested->refcnt, &cgwb_lock, &flags))
|
||||
return;
|
||||
- }
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Tue, 6 Mar 2018 21:37:31 -0500
|
||||
Subject: [PATCH 05/17] handle move to LRU in retain_dentry()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 62d9956cefe6ecc4b43a7fae37af78ba7adaceaa
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:37 +0100
|
||||
Subject: [PATCH 05/10] iommu/amd: Remove the special case from
|
||||
alloc_irq_table()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit fde65dd3d3096e8f6ecc7bbe544eb91f4220772c
|
||||
|
||||
|
|
30
debian/patches/features/all/rt/0005-tracing-Fix-a-potential-NULL-dereference.patch
vendored
Normal file
30
debian/patches/features/all/rt/0005-tracing-Fix-a-potential-NULL-dereference.patch
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
From: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
Date: Fri, 23 Mar 2018 14:37:36 +0300
|
||||
Subject: [PATCH 5/5] tracing: Fix a potential NULL dereference
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
We forgot to set the error code on this path so we return ERR_PTR(0)
|
||||
which is NULL. It results in a NULL dereference in the caller.
|
||||
|
||||
Link: http://lkml.kernel.org/r/20180323113735.GC28518@mwanda
|
||||
|
||||
Fixes: 100719dcef44 ("tracing: Add simple expression support to hist triggers")
|
||||
Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||||
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
||||
(cherry picked from commit 5e4cf2bf6d1c198a90ccc0df5ffd8e0d4ea36b48)
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/trace/trace_events_hist.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/kernel/trace/trace_events_hist.c
|
||||
+++ b/kernel/trace/trace_events_hist.c
|
||||
@@ -2777,6 +2777,7 @@ static struct hist_field *parse_expr(str
|
||||
expr->fn = hist_field_plus;
|
||||
break;
|
||||
default:
|
||||
+ ret = -EINVAL;
|
||||
goto free;
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
Date: Wed, 18 Apr 2018 12:51:43 +0200
|
||||
Subject: [PATCH 6/6] ARM: configs: at91: unselect PIT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The PIT is not required anymore to successfully boot and may actually harm
|
||||
in case preempt-rt is used because the PIT interrupt is shared.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Fri, 23 Feb 2018 21:25:42 -0500
|
||||
Subject: [PATCH 06/17] get rid of trylock loop around dentry_kill()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit f657a666fd1b1b9fe59963943c74c245ae66f4cc
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:38 +0100
|
||||
Subject: [PATCH 06/10] iommu/amd: Use `table' instead `irt' as variable name
|
||||
in amd_iommu_update_ga()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 4fde541c9dc114c5b448ad34b0286fe8b7c550f1
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
Date: Wed, 4 Apr 2018 11:43:57 +0200
|
||||
Subject: [PATCH] kernel/user: Use irqsave variant of atomic_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Subject: [PATCH] userns: Use irqsave variant of refcount_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The irqsave variant of atomic_dec_and_lock handles irqsave/restore when
|
||||
The irqsave variant of refcount_dec_and_lock handles irqsave/restore when
|
||||
taking/releasing the spin lock. With this variant the call of
|
||||
local_irq_save/restore is no longer required.
|
||||
|
||||
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
[bigeasy: s@atomic_dec_and_lock@refcount_dec_and_lock@g ]
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
kernel/user.c | 5 +----
|
||||
|
@ -20,8 +21,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
return;
|
||||
|
||||
- local_irq_save(flags);
|
||||
- if (atomic_dec_and_lock(&up->__count, &uidhash_lock))
|
||||
+ if (atomic_dec_and_lock_irqsave(&up->__count, &uidhash_lock, flags))
|
||||
- if (refcount_dec_and_lock(&up->__count, &uidhash_lock))
|
||||
+ if (refcount_dec_and_lock_irqsave(&up->__count, &uidhash_lock, &flags))
|
||||
free_user(up, flags);
|
||||
- else
|
||||
- local_irq_restore(flags);
|
|
@ -2,7 +2,7 @@ From: John Ogness <john.ogness@linutronix.de>
|
|||
Date: Fri, 23 Feb 2018 00:50:24 +0100
|
||||
Subject: [PATCH 07/17] fs/dcache: Avoid a try_lock loop in
|
||||
shrink_dentry_list()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 8f04da2adbdffed8dc4b2feb00ec3b3d84683885
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:39 +0100
|
||||
Subject: [PATCH 07/10] iommu/amd: Factor out setting the remap table for a
|
||||
devid
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 2fcc1e8ac4a8514c64f946178fc36c2e30e56a41
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
Date: Wed, 4 Apr 2018 11:43:58 +0200
|
||||
Subject: [PATCH] drivers/md/raid5: Use irqsave variant of
|
||||
atomic_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Subject: [PATCH] md: raid5: Use irqsave variant of refcount_dec_and_lock()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The irqsave variant of atomic_dec_and_lock handles irqsave/restore when
|
||||
The irqsave variant of refcount_dec_and_lock handles irqsave/restore when
|
||||
taking/releasing the spin lock. With this variant the call of
|
||||
local_irq_save is no longer required.
|
||||
|
||||
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
[bigeasy: s@atomic_dec_and_lock@refcount_dec_and_lock@g ]
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/md/raid5.c | 5 ++---
|
||||
|
@ -22,8 +22,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
slow_path:
|
||||
- local_irq_save(flags);
|
||||
/* we are ok here if STRIPE_ON_RELEASE_LIST is set or not */
|
||||
- if (atomic_dec_and_lock(&sh->count, &conf->device_lock)) {
|
||||
+ if (atomic_dec_and_lock_irqsave(&sh->count, &conf->device_lock, flags)) {
|
||||
- if (refcount_dec_and_lock(&sh->count, &conf->device_lock)) {
|
||||
+ if (refcount_dec_and_lock_irqsave(&sh->count, &conf->device_lock, &flags)) {
|
||||
INIT_LIST_HEAD(&list);
|
||||
hash = sh->hash_lock_index;
|
||||
do_release_stripe(conf, sh, &list);
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sun, 25 Feb 2018 02:47:29 -0500
|
||||
Subject: [PATCH 08/17] dcache.c: trim includes
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 43986d63b60fd0152d9038ee3f0f9294efa8c983
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:40 +0100
|
||||
Subject: [PATCH 08/10] iommu/amd: Drop the lock while allocating new irq remap
|
||||
table
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 993ca6e063a69a0c65ca42ed449b6bc1b3844151
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
Date: Wed, 4 Apr 2018 11:43:59 +0200
|
||||
Subject: [PATCH] drivers/md/raid5: Do not disable irq on
|
||||
Subject: [PATCH] md: raid5: Do not disable irq on
|
||||
release_inactive_stripe_list() call
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
There is no need to invoke release_inactive_stripe_list() with interrupts
|
||||
disabled. All call sites, except raid5_release_stripe(), unlock
|
||||
|
@ -11,6 +11,7 @@ disabled. All call sites, except raid5_release_stripe(), unlock
|
|||
Make it consistent.
|
||||
|
||||
Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
||||
[bigeasy: s@atomic_dec_and_lock@refcount_dec_and_lock@g ]
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/md/raid5.c | 3 +--
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 22 Mar 2018 16:22:41 +0100
|
||||
Subject: [PATCH 09/10] iommu/amd: Make amd_iommu_devtable_lock a spin_lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 2cd1083d79a0a8c223af430ca97884c28a1e2fc0
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Mon, 5 Mar 2018 19:15:50 -0500
|
||||
Subject: [PATCH 09/17] split d_path() and friends into a separate file
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 7a5cf791a747640adb2a1b5e3838321b26953a23
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:35 -0600
|
||||
Subject: [PATCH 09/48] tracing: Move hist trigger Documentation to
|
||||
histogram.txt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The hist trigger Documentation takes up a large part of events.txt -
|
||||
since it will be getting even larger, move it to a separate file.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 22 Mar 2018 16:22:42 +0100
|
||||
Subject: [PATCH 10/10] iommu/amd: Return proper error code in
|
||||
irq_remapping_alloc()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 29d049be9438278c47253a74cf8d0ddf36bd5d68
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Wed, 7 Mar 2018 12:47:04 -0500
|
||||
Subject: [PATCH 10/17] take out orphan externs (empty_string/slash_string)
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 903ddaf49329076862d65f7284d825759ff67bd6
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:36 -0600
|
||||
Subject: [PATCH 10/48] tracing: Add Documentation for log2 modifier
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add a line for the log2 modifier, to keep it aligned with
|
||||
tracing/README.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Thu, 8 Mar 2018 11:00:45 -0500
|
||||
Subject: [PATCH 11/17] fold lookup_real() into __lookup_hash()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit a03ece5ff2bd7a9abaa0e8ddfe5f79d79e5984c8
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Vedang Patel <vedang.patel@intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:37 -0600
|
||||
Subject: [PATCH 11/48] tracing: Add support to detect and avoid duplicates
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
A duplicate in the tracing_map hash table is when 2 different entries
|
||||
have the same key and, as a result, the key_hash. This is possible due
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Thu, 8 Mar 2018 11:01:22 -0500
|
||||
Subject: [PATCH 12/17] debugfs_lookup(): switch to lookup_one_len_unlocked()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit cd1c0c9321999737073dcfc3364e194e02604bce
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Vedang Patel <vedang.patel@intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:38 -0600
|
||||
Subject: [PATCH 12/48] tracing: Remove code which merges duplicates
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
We now have the logic to detect and remove duplicates in the
|
||||
tracing_map hash table. The code which merges duplicates in the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Fri, 9 Mar 2018 18:06:03 -0500
|
||||
Subject: [PATCH 13/17] lustre: get rid of pointless casts to struct dentry *
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 5bf1ddf7ee0e23598a620ef9ea2b0f00e804859d
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:39 -0600
|
||||
Subject: [PATCH 13/48] ring-buffer: Add interface for setting absolute time
|
||||
stamps
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Define a new function, tracing_set_time_stamp_abs(), which can be used
|
||||
to enable or disable the use of absolute timestamps rather than time
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sat, 10 Mar 2018 16:40:33 -0500
|
||||
Subject: [PATCH 14/17] oprofilefs: don't oops on allocation failure
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit a7498968338da9b928f5d8054acc8be6ed2bc14c
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:40 -0600
|
||||
Subject: [PATCH 14/48] ring-buffer: Redefine the unimplemented
|
||||
RINGBUF_TYPE_TIME_STAMP
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
RINGBUF_TYPE_TIME_STAMP is defined but not used, and from what I can
|
||||
gather was reserved for something like an absolute timestamp feature
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Al Viro <viro@zeniv.linux.org.uk>
|
|||
Date: Sat, 10 Mar 2018 23:15:52 -0500
|
||||
Subject: [PATCH 15/17] make non-exchanging __d_move() copy ->d_parent rather
|
||||
than swap them
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 076515fc926793e162fc6525bed1679ef2bbf269
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:41 -0600
|
||||
Subject: [PATCH 15/48] tracing: Add timestamp_mode trace file
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add a new option flag indicating whether or not the ring buffer is in
|
||||
'absolute timestamp' mode.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Al Viro <viro@zeniv.linux.org.uk>
|
|||
Date: Sun, 11 Mar 2018 15:15:46 -0400
|
||||
Subject: [PATCH 16/17] fold dentry_lock_for_move() into its sole caller and
|
||||
clean it up
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit 42177007aa277af3e37bf2ae3efdfe795c81d700
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:42 -0600
|
||||
Subject: [PATCH 16/48] tracing: Give event triggers access to
|
||||
ring_buffer_event
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The ring_buffer event can provide a timestamp that may be useful to
|
||||
various triggers - pass it into the handlers for that purpose.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Thu, 29 Mar 2018 15:08:21 -0400
|
||||
Subject: [PATCH 17/17] d_genocide: move export to definition
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Upstream commit cbd4a5bcb25b5ed0c1c64bc969b893cad9b78acc
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:43 -0600
|
||||
Subject: [PATCH 17/48] tracing: Add ring buffer event param to hist field
|
||||
functions
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Some events such as timestamps require access to a ring_buffer_event
|
||||
struct; add a param so that hist field functions can access that.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:44 -0600
|
||||
Subject: [PATCH 18/48] tracing: Break out hist trigger assignment parsing
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
This will make it easier to add variables, and makes the parsing code
|
||||
cleaner regardless.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:45 -0600
|
||||
Subject: [PATCH 19/48] tracing: Add hist trigger timestamp support
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add support for a timestamp event field. This is actually a 'pseudo-'
|
||||
event field in that it behaves like it's part of the event record, but
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:46 -0600
|
||||
Subject: [PATCH 20/48] tracing: Add per-element variable support to
|
||||
tracing_map
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
In order to allow information to be passed between trace events, add
|
||||
support for per-element variables to tracing_map. This provides a
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:47 -0600
|
||||
Subject: [PATCH 21/48] tracing: Add hist_data member to hist_field
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Allow hist_data access via hist_field. Some users of hist_fields
|
||||
require or will require more access to the associated hist_data.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:48 -0600
|
||||
Subject: [PATCH 22/48] tracing: Add usecs modifier for hist trigger timestamps
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Appending .usecs onto a common_timestamp field will cause the
|
||||
timestamp value to be in microseconds instead of the default
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:49 -0600
|
||||
Subject: [PATCH 23/48] tracing: Add variable support to hist triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add support for saving the value of a current event's event field by
|
||||
assigning it to a variable that can be read by a subsequent event.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:50 -0600
|
||||
Subject: [PATCH 24/48] tracing: Account for variables in named trigger
|
||||
compatibility
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Named triggers must also have the same set of variables in order to be
|
||||
considered compatible - update the trigger match test to account for
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:51 -0600
|
||||
Subject: [PATCH 25/48] tracing: Move get_hist_field_flags()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Move get_hist_field_flags() to make it more easily accessible for new
|
||||
code (and keep the move separate from new functionality).
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:52 -0600
|
||||
Subject: [PATCH 26/48] tracing: Add simple expression support to hist triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add support for simple addition, subtraction, and unary expressions
|
||||
(-(expr) and expr, where expr = b-a, a+b, a+b+c) to hist triggers, in
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:53 -0600
|
||||
Subject: [PATCH 27/48] tracing: Generalize per-element hist trigger data
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Up until now, hist triggers only needed per-element support for saving
|
||||
'comm' data, which was saved directly as a private data pointer.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:54 -0600
|
||||
Subject: [PATCH 28/48] tracing: Pass tracing_map_elt to hist_field accessor
|
||||
functions
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Some accessor functions, such as for variable references, require
|
||||
access to a corrsponding tracing_map_elt.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:55 -0600
|
||||
Subject: [PATCH 29/48] tracing: Add hist_field 'type' field
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Future support for synthetic events requires hist_field 'type'
|
||||
information, so add a field for that.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:51:56 -0600
|
||||
Subject: [PATCH 30/48] tracing: Add variable reference handling to hist
|
||||
triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add the necessary infrastructure to allow the variables defined on one
|
||||
event to be referenced in another. This allows variables set by a
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:57 -0600
|
||||
Subject: [PATCH 31/48] tracing: Add hist trigger action hook
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add a hook for executing extra actions whenever a histogram entry is
|
||||
added or updated.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:58 -0600
|
||||
Subject: [PATCH 32/48] tracing: Add support for 'synthetic' events
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Synthetic events are user-defined events generated from hist trigger
|
||||
variables saved from one or more other events.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:51:59 -0600
|
||||
Subject: [PATCH 33/48] tracing: Add support for 'field variables'
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Users should be able to directly specify event fields in hist trigger
|
||||
'actions' rather than being forced to explicitly create a variable for
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:00 -0600
|
||||
Subject: [PATCH 34/48] tracing: Add 'onmatch' hist trigger action support
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add an 'onmatch(matching.event).<synthetic_event_name>(param list)'
|
||||
hist trigger action which is invoked with the set of variables or
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:01 -0600
|
||||
Subject: [PATCH 35/48] tracing: Add 'onmax' hist trigger action support
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add an 'onmax(var).save(field,...)' hist trigger action which is
|
||||
invoked whenever an event exceeds the current maximum.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:52:02 -0600
|
||||
Subject: [PATCH 36/48] tracing: Allow whitespace to surround hist trigger
|
||||
filter
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The existing code only allows for one space before and after the 'if'
|
||||
specifying the filter for a hist trigger. Add code to make that more
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:03 -0600
|
||||
Subject: [PATCH 37/48] tracing: Add cpu field for hist triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
A common key to use in a histogram is the cpuid - add a new cpu
|
||||
'synthetic' field named 'cpu' for that purpose.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:52:04 -0600
|
||||
Subject: [PATCH 38/48] tracing: Add hist trigger support for variable
|
||||
reference aliases
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add support for alias=$somevar where alias can be used as
|
||||
onmatch.xxx($alias).
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:52:05 -0600
|
||||
Subject: [PATCH 39/48] tracing: Add 'last error' error facility for hist
|
||||
triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
With the addition of variables and actions, it's become necessary to
|
||||
provide more detailed error information to users about syntax errors.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:06 -0600
|
||||
Subject: [PATCH 40/48] tracing: Add inter-event hist trigger Documentation
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Add background and details on inter-event hist triggers, including
|
||||
hist variables, synthetic events, and actions.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:07 -0600
|
||||
Subject: [PATCH 41/48] tracing: Make tracing_set_clock() non-static
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Allow tracing code outside of trace.c to access tracing_set_clock().
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
||||
Date: Mon, 15 Jan 2018 20:52:08 -0600
|
||||
Subject: [PATCH 42/48] tracing: Add a clock attribute for hist triggers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The default clock if timestamps are used in a histogram is "global".
|
||||
If timestamps aren't used, the clock is irrelevant.
|
||||
|
|
|
@ -2,7 +2,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
|
|||
Date: Wed, 7 Feb 2018 17:26:32 -0500
|
||||
Subject: [PATCH 45/48] ring-buffer: Add nesting for adding events within
|
||||
events
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The ring-buffer code has recusion protection in case tracing ends up tracing
|
||||
itself, the ring-buffer will detect that it was called at the same context
|
||||
|
|
|
@ -2,7 +2,7 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
|
|||
Date: Wed, 7 Feb 2018 17:29:46 -0500
|
||||
Subject: [PATCH 46/48] tracing: Use the ring-buffer nesting to allow synthetic
|
||||
events to be traced
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Synthetic events can be done within the recording of other events. Notify
|
||||
the ring buffer via ring_buffer_nest_start() and ring_buffer_nest_end() that
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:52:10 -0600
|
||||
Subject: [PATCH 47/48] tracing: Add inter-event blurb to HIST_TRIGGERS config
|
||||
option
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
So that users know that inter-event tracing is supported as part of
|
||||
the HIST_TRIGGERS option, include text to that effect in the help
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Rajvi Jingar <rajvi.jingar@intel.com>
|
|||
Date: Mon, 15 Jan 2018 20:52:11 -0600
|
||||
Subject: [PATCH 48/48] selftests: ftrace: Add inter-event hist triggers
|
||||
testcases
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
This adds inter-event hist triggers testcases which covers following:
|
||||
- create/remove synthetic event
|
||||
|
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] ACPICA: Convert acpi_gbl_hardware lock back to an
|
|||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
We hit the following bug with -RT:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 25 Apr 2018 15:19:42 +0200
|
||||
Subject: [PATCH] ACPICA: provide abstraction for raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Provide a new lock type acpi_raw_spinlock which is implemented as
|
||||
raw_spinlock_t on Linux. This type should be used in code which covers
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Anna-Maria Gleixner <anna-maria@linutronix.de>
|
|||
Date: Thu, 29 Mar 2018 17:09:27 +0200
|
||||
Subject: [PATCH] ALSA: pcm: Hide local_irq_disable/enable() and
|
||||
local_irqsave/restore()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The snd_pcm_stream_lock_irq*() functions decouple disabling interrupts
|
||||
from the actual locking process. This does not work as expected if the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: "Yadi.hu" <yadi.hu@windriver.com>
|
||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||
Subject: ARM: enable irq in translation/section permission fault handlers
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Probably happens on all ARM, with
|
||||
CONFIG_PREEMPT_RT_FULL
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
||||
Subject: printk: Drop the logbuf_lock more often
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
||||
with a "full" buffer after executing "dmesg" on the shell.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 11 Apr 2018 13:34:26 +0200
|
||||
Subject: [PATCH] IB/ipoib: replace local_irq_disable() with proper locking
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Commit 78bfe0b5b67f ("IPoIB: Take dev->xmit_lock around mc_list accesses")
|
||||
introduced xmit_lock lock in ipoib_mcast_restart_task() and commit
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Josh Cartwright <joshc@ni.com>
|
||||
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
||||
Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
||||
the vgic and timer states to prevent the calling task from migrating to
|
||||
|
|
|
@ -5,7 +5,7 @@ Cc: Anna Schumaker <anna.schumaker@netapp.com>,
|
|||
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
|
||||
tglx@linutronix.de
|
||||
Subject: NFSv4: replace seqcount_t with a seqlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
|
||||
because it maps to preempt_disable() in -RT which I can't have at this
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Fri, 16 Feb 2018 11:45:13 +0100
|
||||
Subject: [PATCH] RCU: skip the "schedule() in RCU section" warning on UP,
|
||||
too
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
In "RCU: we need to skip that warning but only on sleeping locks" we
|
||||
skipped a warning on SMP systems in case we schedule out in a RCU
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
Date: Thu, 21 Sep 2017 14:25:13 +0200
|
||||
Subject: [PATCH] RCU: we need to skip that warning but only on sleeping
|
||||
locks
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
This check is okay for upstream. On RT we trigger this while blocking on
|
||||
sleeping lock. In this case, it is okay to schedule() within a RCU
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 11 Apr 2018 11:27:44 +0200
|
||||
Subject: [PATCH] Revert mm/vmstat.c: fix vmstat_update() preemption BUG
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
This patch reverts commit c7f26ccfb2c3 ("mm/vmstat.c: fix
|
||||
vmstat_update() preemption BUG").
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 12 Apr 2018 09:16:22 +0200
|
||||
Subject: [PATCH] [SCSI] libsas: remove irq save in sas_ata_qc_issue()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.8-rt3.tar.xz
|
||||
|
||||
Since commit 312d3e56119a ("[SCSI] libsas: remove ata_port.lock
|
||||
management duties from lldds") the sas_ata_qc_issue() function unlocks
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue