summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2020-09-28 15:01:22 +0200
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2020-09-28 15:01:22 +0200
commit9acf21829c9144f0546302dea0f25a532ffa5831 (patch)
treebf292b4da2fa5bd5d5abab855b74a20ecc0709fb
parentb71e968e8948b6b360d0d7c5a94d84deb6a4eab6 (diff)
downloadlinux-rt-5.9-rc7-rt10-patches.tar.gz
[ANNOUNCE] v5.9-rc7-rt10v5.9-rc7-rt10-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r--patches/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch46
-rw-r--r--patches/dax-Fix-compilation-for-CONFIG_DAX-CONFIG_FS_DAX.patch65
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/series6
-rw-r--r--patches/softirq-disable-softirq-stacks-for-rt.patch2
-rw-r--r--patches/tracing-Make-the-space-reserved-for-the-pid-wider.patch140
6 files changed, 25 insertions, 236 deletions
diff --git a/patches/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/patches/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
index 82cd6c71f40a..a6a691365822 100644
--- a/patches/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
+++ b/patches/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
@@ -150,7 +150,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld\n",
node, total_slabs - free_slabs, total_slabs,
-@@ -2102,7 +2102,7 @@ static void check_spinlock_acquired(stru
+@@ -2106,7 +2106,7 @@ static void check_spinlock_acquired(stru
{
#ifdef CONFIG_SMP
check_irq_off();
@@ -159,7 +159,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif
}
-@@ -2110,7 +2110,7 @@ static void check_spinlock_acquired_node
+@@ -2114,7 +2114,7 @@ static void check_spinlock_acquired_node
{
#ifdef CONFIG_SMP
check_irq_off();
@@ -168,7 +168,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#endif
}
-@@ -2150,9 +2150,9 @@ static void do_drain(void *arg)
+@@ -2154,9 +2154,9 @@ static void do_drain(void *arg)
check_irq_off();
ac = cpu_cache_get(cachep);
n = get_node(cachep, node);
@@ -177,10 +177,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
free_block(cachep, ac->entry, ac->avail, node, &list);
- spin_unlock(&n->list_lock);
+ raw_spin_unlock(&n->list_lock);
- slabs_destroy(cachep, &list);
ac->avail = 0;
+ slabs_destroy(cachep, &list);
}
-@@ -2170,9 +2170,9 @@ static void drain_cpu_caches(struct kmem
+@@ -2174,9 +2174,9 @@ static void drain_cpu_caches(struct kmem
drain_alien_cache(cachep, n->alien);
for_each_kmem_cache_node(cachep, node, n) {
@@ -192,7 +192,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list);
}
-@@ -2194,10 +2194,10 @@ static int drain_freelist(struct kmem_ca
+@@ -2198,10 +2198,10 @@ static int drain_freelist(struct kmem_ca
nr_freed = 0;
while (nr_freed < tofree && !list_empty(&n->slabs_free)) {
@@ -205,7 +205,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
goto out;
}
-@@ -2210,7 +2210,7 @@ static int drain_freelist(struct kmem_ca
+@@ -2214,7 +2214,7 @@ static int drain_freelist(struct kmem_ca
* to the cache.
*/
n->free_objects -= cache->num;
@@ -214,7 +214,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slab_destroy(cache, page);
nr_freed++;
}
-@@ -2648,7 +2648,7 @@ static void cache_grow_end(struct kmem_c
+@@ -2652,7 +2652,7 @@ static void cache_grow_end(struct kmem_c
INIT_LIST_HEAD(&page->slab_list);
n = get_node(cachep, page_to_nid(page));
@@ -223,7 +223,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
n->total_slabs++;
if (!page->active) {
list_add_tail(&page->slab_list, &n->slabs_free);
-@@ -2658,7 +2658,7 @@ static void cache_grow_end(struct kmem_c
+@@ -2662,7 +2662,7 @@ static void cache_grow_end(struct kmem_c
STATS_INC_GROWN(cachep);
n->free_objects += cachep->num - page->active;
@@ -232,7 +232,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
fixup_objfreelist_debug(cachep, &list);
}
-@@ -2824,7 +2824,7 @@ static struct page *get_first_slab(struc
+@@ -2828,7 +2828,7 @@ static struct page *get_first_slab(struc
{
struct page *page;
@@ -241,7 +241,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
page = list_first_entry_or_null(&n->slabs_partial, struct page,
slab_list);
if (!page) {
-@@ -2851,10 +2851,10 @@ static noinline void *cache_alloc_pfmema
+@@ -2855,10 +2855,10 @@ static noinline void *cache_alloc_pfmema
if (!gfp_pfmemalloc_allowed(flags))
return NULL;
@@ -254,7 +254,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
return NULL;
}
-@@ -2863,7 +2863,7 @@ static noinline void *cache_alloc_pfmema
+@@ -2867,7 +2867,7 @@ static noinline void *cache_alloc_pfmema
fixup_slab_list(cachep, n, page, &list);
@@ -263,7 +263,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
fixup_objfreelist_debug(cachep, &list);
return obj;
-@@ -2922,7 +2922,7 @@ static void *cache_alloc_refill(struct k
+@@ -2926,7 +2926,7 @@ static void *cache_alloc_refill(struct k
if (!n->free_objects && (!shared || !shared->avail))
goto direct_grow;
@@ -272,7 +272,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
shared = READ_ONCE(n->shared);
/* See if we can refill from the shared array */
-@@ -2946,7 +2946,7 @@ static void *cache_alloc_refill(struct k
+@@ -2950,7 +2950,7 @@ static void *cache_alloc_refill(struct k
must_grow:
n->free_objects -= ac->avail;
alloc_done:
@@ -281,7 +281,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
fixup_objfreelist_debug(cachep, &list);
direct_grow:
-@@ -3171,7 +3171,7 @@ static void *____cache_alloc_node(struct
+@@ -3175,7 +3175,7 @@ static void *____cache_alloc_node(struct
BUG_ON(!n);
check_irq_off();
@@ -290,7 +290,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
page = get_first_slab(n, false);
if (!page)
goto must_grow;
-@@ -3189,12 +3189,12 @@ static void *____cache_alloc_node(struct
+@@ -3193,12 +3193,12 @@ static void *____cache_alloc_node(struct
fixup_slab_list(cachep, n, page, &list);
@@ -305,7 +305,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
page = cache_grow_begin(cachep, gfp_exact_node(flags), nodeid);
if (page) {
/* This slab isn't counted yet so don't update free_objects */
-@@ -3372,7 +3372,7 @@ static void cache_flusharray(struct kmem
+@@ -3376,7 +3376,7 @@ static void cache_flusharray(struct kmem
check_irq_off();
n = get_node(cachep, node);
@@ -314,16 +314,16 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (n->shared) {
struct array_cache *shared_array = n->shared;
int max = shared_array->limit - shared_array->avail;
-@@ -3401,7 +3401,7 @@ static void cache_flusharray(struct kmem
+@@ -3405,7 +3405,7 @@ static void cache_flusharray(struct kmem
STATS_SET_FREEABLE(cachep, i);
}
#endif
- spin_unlock(&n->list_lock);
+ raw_spin_unlock(&n->list_lock);
- slabs_destroy(cachep, &list);
ac->avail -= batchcount;
memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
-@@ -3830,9 +3830,9 @@ static int do_tune_cpucache(struct kmem_
+ slabs_destroy(cachep, &list);
+@@ -3834,9 +3834,9 @@ static int do_tune_cpucache(struct kmem_
node = cpu_to_mem(cpu);
n = get_node(cachep, node);
@@ -335,7 +335,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list);
}
free_percpu(prev);
-@@ -3927,9 +3927,9 @@ static void drain_array(struct kmem_cach
+@@ -3931,9 +3931,9 @@ static void drain_array(struct kmem_cach
return;
}
@@ -347,7 +347,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
slabs_destroy(cachep, &list);
}
-@@ -4013,7 +4013,7 @@ void get_slabinfo(struct kmem_cache *cac
+@@ -4017,7 +4017,7 @@ void get_slabinfo(struct kmem_cache *cac
for_each_kmem_cache_node(cachep, node, n) {
check_irq_on();
@@ -356,7 +356,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
total_slabs += n->total_slabs;
free_slabs += n->free_slabs;
-@@ -4022,7 +4022,7 @@ void get_slabinfo(struct kmem_cache *cac
+@@ -4026,7 +4026,7 @@ void get_slabinfo(struct kmem_cache *cac
if (n->shared)
shared_avail += n->shared->avail;
diff --git a/patches/dax-Fix-compilation-for-CONFIG_DAX-CONFIG_FS_DAX.patch b/patches/dax-Fix-compilation-for-CONFIG_DAX-CONFIG_FS_DAX.patch
deleted file mode 100644
index d2f017c31633..000000000000
--- a/patches/dax-Fix-compilation-for-CONFIG_DAX-CONFIG_FS_DAX.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From: Jan Kara <jack@suse.cz>
-Date: Mon, 21 Sep 2020 11:33:23 +0200
-Subject: [PATCH] dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
-
-dax_supported() is defined whenever CONFIG_DAX is enabled. So dummy
-implementation should be defined only in !CONFIG_DAX case, not in
-!CONFIG_FS_DAX case.
-
-Fixes: e2ec51282545 ("dm: Call proper helper to determine dax support")
-Cc: <stable@vger.kernel.org>
-Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
-Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
-Signed-off-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- include/linux/dax.h | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
---- a/include/linux/dax.h
-+++ b/include/linux/dax.h
-@@ -58,6 +58,8 @@ static inline void set_dax_synchronous(s
- {
- __set_dax_synchronous(dax_dev);
- }
-+bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
-+ int blocksize, sector_t start, sector_t len);
- /*
- * Check if given mapping is supported by the file / underlying device.
- */
-@@ -104,6 +106,12 @@ static inline bool dax_synchronous(struc
- static inline void set_dax_synchronous(struct dax_device *dax_dev)
- {
- }
-+static inline bool dax_supported(struct dax_device *dax_dev,
-+ struct block_device *bdev, int blocksize, sector_t start,
-+ sector_t len)
-+{
-+ return false;
-+}
- static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
- struct dax_device *dax_dev)
- {
-@@ -130,8 +138,6 @@ static inline bool generic_fsdax_support
- return __generic_fsdax_supported(dax_dev, bdev, blocksize, start,
- sectors);
- }
--bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
-- int blocksize, sector_t start, sector_t len);
-
- static inline void fs_put_dax(struct dax_device *dax_dev)
- {
-@@ -158,13 +164,6 @@ static inline bool generic_fsdax_support
- {
- return false;
- }
--
--static inline bool dax_supported(struct dax_device *dax_dev,
-- struct block_device *bdev, int blocksize, sector_t start,
-- sector_t len)
--{
-- return false;
--}
-
- static inline void fs_put_dax(struct dax_device *dax_dev)
- {
diff --git a/patches/localversion.patch b/patches/localversion.patch
index 02952cda4bfa..e16fb07c0a7d 100644
--- a/patches/localversion.patch
+++ b/patches/localversion.patch
@@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- /dev/null
+++ b/localversion-rt
@@ -0,0 +1 @@
-+-rt9
++-rt10
diff --git a/patches/series b/patches/series
index 0f88a46c87fa..8f4523f9455a 100644
--- a/patches/series
+++ b/patches/series
@@ -61,9 +61,6 @@ printk-fix-ifnullfree.cocci-warnings.patch
# https://lkml.kernel.org/r/20200828100022.1099682-2-npiggin@gmail.com
mm-fix-exec-activate_mm-vs-TLB-shootdown-and-lazy-tl.patch
-# 20200921095035.GC5862@quack2.suse.cz
-dax-Fix-compilation-for-CONFIG_DAX-CONFIG_FS_DAX.patch
-
############################################################
# POSTED
############################################################
@@ -79,9 +76,6 @@ io_wq-Make-io_wqe-lock-a-raw_spinlock_t.patch
# 20200915074816.52zphpywj4zidspk@linutronix.de
bus-mhi-Remove-include-of-rwlock_types.h.patch
-# 20200904082331.dcdkrr3bkn3e4qlg@linutronix.de
-tracing-Make-the-space-reserved-for-the-pid-wider.patch
-
############################################################
# Ready for posting
############################################################
diff --git a/patches/softirq-disable-softirq-stacks-for-rt.patch b/patches/softirq-disable-softirq-stacks-for-rt.patch
index d99dd861c9d0..ef563bec28da 100644
--- a/patches/softirq-disable-softirq-stacks-for-rt.patch
+++ b/patches/softirq-disable-softirq-stacks-for-rt.patch
@@ -131,7 +131,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+#ifndef CONFIG_PREEMPT_RT
void do_softirq_own_stack(void)
{
- run_on_irqstack_cond(__do_softirq, NULL, NULL);
+ run_on_irqstack_cond(__do_softirq, NULL);
}
+#endif
--- a/include/linux/interrupt.h
diff --git a/patches/tracing-Make-the-space-reserved-for-the-pid-wider.patch b/patches/tracing-Make-the-space-reserved-for-the-pid-wider.patch
deleted file mode 100644
index bbaf559ebebe..000000000000
--- a/patches/tracing-Make-the-space-reserved-for-the-pid-wider.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 1acd6e3972d8f27403eb915f3bffa522f2965018 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Date: Mon, 21 Sep 2020 20:26:24 -0400
-Subject: [PATCH] tracing: Make the space reserved for the pid wider
-
-For 64bit CONFIG_BASE_SMALL=0 systems PID_MAX_LIMIT is set by default to
-4194304. During boot the kernel sets a new value based on number of CPUs
-but no lower than 32768. It is 1024 per CPU so with 128 CPUs the default
-becomes 131072 which needs six digits.
-This value can be increased during run time but must not exceed the
-initial upper limit.
-
-Systemd sometime after v241 sets it to the upper limit during boot. The
-result is that when the pid exceeds five digits, the trace output is a
-little hard to read because it is no longer properly padded (same like
-on big iron with 98+ CPUs).
-
-Increase the pid padding to seven digits.
-
-Link: https://lkml.kernel.org/r/20200904082331.dcdkrr3bkn3e4qlg@linutronix.de
-
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- kernel/trace/trace.c | 38 +++++++++++++++++++-------------------
- kernel/trace/trace_output.c | 12 ++++++------
- 2 files changed, 25 insertions(+), 25 deletions(-)
-
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -3782,14 +3782,14 @@ unsigned long trace_total_entries(struct
-
- static void print_lat_help_header(struct seq_file *m)
- {
-- seq_puts(m, "# _------=> CPU# \n"
-- "# / _-----=> irqs-off \n"
-- "# | / _----=> need-resched \n"
-- "# || / _---=> hardirq/softirq \n"
-- "# ||| / _--=> preempt-depth \n"
-- "# |||| / delay \n"
-- "# cmd pid ||||| time | caller \n"
-- "# \\ / ||||| \\ | / \n");
-+ seq_puts(m, "# _------=> CPU# \n"
-+ "# / _-----=> irqs-off \n"
-+ "# | / _----=> need-resched \n"
-+ "# || / _---=> hardirq/softirq \n"
-+ "# ||| / _--=> preempt-depth \n"
-+ "# |||| / delay \n"
-+ "# cmd pid ||||| time | caller \n"
-+ "# \\ / ||||| \\ | / \n");
- }
-
- static void print_event_info(struct array_buffer *buf, struct seq_file *m)
-@@ -3810,26 +3810,26 @@ static void print_func_help_header(struc
-
- print_event_info(buf, m);
-
-- seq_printf(m, "# TASK-PID %s CPU# TIMESTAMP FUNCTION\n", tgid ? "TGID " : "");
-- seq_printf(m, "# | | %s | | |\n", tgid ? " | " : "");
-+ seq_printf(m, "# TASK-PID %s CPU# TIMESTAMP FUNCTION\n", tgid ? " TGID " : "");
-+ seq_printf(m, "# | | %s | | |\n", tgid ? " | " : "");
- }
-
- static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file *m,
- unsigned int flags)
- {
- bool tgid = flags & TRACE_ITER_RECORD_TGID;
-- const char *space = " ";
-- int prec = tgid ? 10 : 2;
-+ const char *space = " ";
-+ int prec = tgid ? 12 : 2;
-
- print_event_info(buf, m);
-
-- seq_printf(m, "# %.*s _-----=> irqs-off\n", prec, space);
-- seq_printf(m, "# %.*s / _----=> need-resched\n", prec, space);
-- seq_printf(m, "# %.*s| / _---=> hardirq/softirq\n", prec, space);
-- seq_printf(m, "# %.*s|| / _--=> preempt-depth\n", prec, space);
-- seq_printf(m, "# %.*s||| / delay\n", prec, space);
-- seq_printf(m, "# TASK-PID %.*sCPU# |||| TIMESTAMP FUNCTION\n", prec, " TGID ");
-- seq_printf(m, "# | | %.*s | |||| | |\n", prec, " | ");
-+ seq_printf(m, "# %.*s _-----=> irqs-off\n", prec, space);
-+ seq_printf(m, "# %.*s / _----=> need-resched\n", prec, space);
-+ seq_printf(m, "# %.*s| / _---=> hardirq/softirq\n", prec, space);
-+ seq_printf(m, "# %.*s|| / _--=> preempt-depth\n", prec, space);
-+ seq_printf(m, "# %.*s||| / delay\n", prec, space);
-+ seq_printf(m, "# TASK-PID %.*s CPU# |||| TIMESTAMP FUNCTION\n", prec, " TGID ");
-+ seq_printf(m, "# | | %.*s | |||| | |\n", prec, " | ");
- }
-
- void
---- a/kernel/trace/trace_output.c
-+++ b/kernel/trace/trace_output.c
-@@ -497,7 +497,7 @@ lat_print_generic(struct trace_seq *s, s
-
- trace_find_cmdline(entry->pid, comm);
-
-- trace_seq_printf(s, "%8.8s-%-5d %3d",
-+ trace_seq_printf(s, "%8.8s-%-7d %3d",
- comm, entry->pid, cpu);
-
- return trace_print_lat_fmt(s, entry);
-@@ -588,15 +588,15 @@ int trace_print_context(struct trace_ite
-
- trace_find_cmdline(entry->pid, comm);
-
-- trace_seq_printf(s, "%16s-%-5d ", comm, entry->pid);
-+ trace_seq_printf(s, "%16s-%-7d ", comm, entry->pid);
-
- if (tr->trace_flags & TRACE_ITER_RECORD_TGID) {
- unsigned int tgid = trace_find_tgid(entry->pid);
-
- if (!tgid)
-- trace_seq_printf(s, "(-----) ");
-+ trace_seq_printf(s, "(-------) ");
- else
-- trace_seq_printf(s, "(%5d) ", tgid);
-+ trace_seq_printf(s, "(%7d) ", tgid);
- }
-
- trace_seq_printf(s, "[%03d] ", iter->cpu);
-@@ -636,7 +636,7 @@ int trace_print_lat_context(struct trace
- trace_find_cmdline(entry->pid, comm);
-
- trace_seq_printf(
-- s, "%16s %5d %3d %d %08x %08lx ",
-+ s, "%16s %7d %3d %d %08x %08lx ",
- comm, entry->pid, iter->cpu, entry->flags,
- entry->preempt_count, iter->idx);
- } else {
-@@ -917,7 +917,7 @@ static enum print_line_t trace_ctxwake_p
- S = task_index_to_char(field->prev_state);
- trace_find_cmdline(field->next_pid, comm);
- trace_seq_printf(&iter->seq,
-- " %5d:%3d:%c %s [%03d] %5d:%3d:%c %s\n",
-+ " %7d:%3d:%c %s [%03d] %7d:%3d:%c %s\n",
- field->prev_pid,
- field->prev_prio,
- S, delim,