summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2021-11-29 10:30:53 +0100
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2021-11-29 10:30:53 +0100
commit6d0554e8fba416e2b0a5775fc0e4ca68d88e0a5b (patch)
tree3b0f8540c7bbdfeb027a0ef388578c73f42324e5
parent384ae056f55dfe0ff63314582b9f51aafe7ee82a (diff)
downloadlinux-rt-5.15.5-rt22-patches.tar.gz
[ANNOUNCE] v5.15.5-rt22v5.15.5-rt22-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r--patches/Add_localversion_for_-RT_release.patch2
-rw-r--r--patches/printk__move_console_printing_to_kthreads.patch48
-rw-r--r--patches/printk__remove_deferred_printing.patch17
3 files changed, 39 insertions, 28 deletions
diff --git a/patches/Add_localversion_for_-RT_release.patch b/patches/Add_localversion_for_-RT_release.patch
index 9af2dba5eb42..127c7efdc247 100644
--- a/patches/Add_localversion_for_-RT_release.patch
+++ b/patches/Add_localversion_for_-RT_release.patch
@@ -15,4 +15,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- /dev/null
+++ b/localversion-rt
@@ -0,0 +1 @@
-+-rt21
++-rt22
diff --git a/patches/printk__move_console_printing_to_kthreads.patch b/patches/printk__move_console_printing_to_kthreads.patch
index 3d095e258f4f..6d57268fa751 100644
--- a/patches/printk__move_console_printing_to_kthreads.patch
+++ b/patches/printk__move_console_printing_to_kthreads.patch
@@ -17,8 +17,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
include/linux/console.h | 13
- kernel/printk/printk.c | 715 ++++++++++++++----------------------------------
- 2 files changed, 236 insertions(+), 492 deletions(-)
+ kernel/printk/printk.c | 717 ++++++++++++++----------------------------------
+ 2 files changed, 237 insertions(+), 493 deletions(-)
---
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -497,17 +497,27 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ seq = read_console_seq(con);
+
+ prb_rec_init_rd(&r, &info, text, LOG_LINE_MAX + PREFIX_MAX);
-+
+
+-#define printk_time false
+ for (;;) {
+ error = wait_event_interruptible(log_wait,
+ prb_read_valid(prb, seq, &r) || kthread_should_stop());
-+
+
+-#define prb_read_valid(rb, seq, r) false
+-#define prb_first_valid_seq(rb) 0
+-#define read_console_seq() 0
+-#define latched_seq_write(dst, src)
+-#define kernel_sync_mode() false
+ if (kthread_should_stop())
+ break;
-+
+
+-static u64 exclusive_console_stop_seq;
+-static unsigned long console_dropped;
+ if (error)
+ continue;
-+
+
+-static size_t record_print_text(const struct printk_record *r,
+- bool syslog, bool time)
+ if (seq != r.info->seq) {
+ dropped += r.info->seq - seq;
+ seq = r.info->seq;
@@ -520,8 +530,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+
+ if (suppress_message_printing(r.info->level))
+ continue;
-
--#define printk_time false
++
+ if (con->flags & CON_EXTENDED) {
+ len = info_print_ext_header(ext_text,
+ CONSOLE_EXT_LOG_MAX,
@@ -535,12 +544,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ console_msg_format & MSG_FORMAT_SYSLOG,
+ printk_time);
+ }
-
--#define prb_read_valid(rb, seq, r) false
--#define prb_first_valid_seq(rb) 0
--#define read_console_seq() 0
--#define latched_seq_write(dst, src)
--#define kernel_sync_mode() false
++
+ console_lock();
+
+ /*
@@ -557,17 +561,13 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ console_unlock();
+ break;
+ }
-
--static u64 exclusive_console_stop_seq;
--static unsigned long console_dropped;
++
+ if (!(con->flags & CON_EXTENDED) && dropped) {
+ dropped_len = snprintf(dropped_text, 64,
+ "** %lu printk messages dropped **\n",
+ dropped);
+ dropped = 0;
-
--static size_t record_print_text(const struct printk_record *r,
-- bool syslog, bool time)
++
+ con->write(con, dropped_text, dropped_len);
+ printk_delay(r.info->level);
+ }
@@ -964,7 +964,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static DEFINE_PER_CPU(struct irq_work, wake_up_klogd_work) =
-@@ -3400,13 +3138,6 @@ void wake_up_klogd(void)
+@@ -3400,18 +3138,11 @@ void wake_up_klogd(void)
void defer_console_output(void)
{
@@ -977,4 +977,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
- preempt_enable();
}
+ void printk_trigger_flush(void)
+ {
+- defer_console_output();
++ wake_up_klogd();
+ }
+
int vprintk_deferred(const char *fmt, va_list args)
diff --git a/patches/printk__remove_deferred_printing.patch b/patches/printk__remove_deferred_printing.patch
index 6f98f1d6a3b7..18d7427a09c3 100644
--- a/patches/printk__remove_deferred_printing.patch
+++ b/patches/printk__remove_deferred_printing.patch
@@ -80,7 +80,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
*visit_mask |= 1UL << info->type;
--- a/arch/x86/kernel/dumpstack_64.c
+++ b/arch/x86/kernel/dumpstack_64.c
-@@ -201,7 +201,8 @@ int get_stack_info(unsigned long *stack,
+@@ -207,7 +207,8 @@ int get_stack_info(unsigned long *stack,
if (visit_mask) {
if (*visit_mask & (1UL << info->type)) {
if (task == current)
@@ -198,7 +198,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* Please don't use printk_ratelimit(), because it shares ratelimiting state
* with all other unrelated printk_ratelimit() callsites. Instead use
* printk_ratelimited() or plain old __ratelimit().
-@@ -215,19 +200,6 @@ int _printk(const char *s, ...)
+@@ -216,19 +201,6 @@ int _printk(const char *s, ...)
{
return 0;
}
@@ -218,7 +218,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
static inline int printk_ratelimit(void)
{
-@@ -471,8 +443,6 @@ struct pi_entry {
+@@ -475,8 +447,6 @@ struct pi_entry {
* See the vsnprintf() documentation for format string extensions over C99.
*/
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
@@ -227,7 +227,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/**
* pr_emerg - Print an emergency-level message
-@@ -610,13 +580,9 @@ struct pi_entry {
+@@ -614,13 +584,9 @@ struct pi_entry {
#ifdef CONFIG_PRINTK
#define printk_once(fmt, ...) \
DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
@@ -459,7 +459,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
asmlinkage __visible int _printk(const char *fmt, ...)
{
-@@ -3136,32 +3138,6 @@ void wake_up_klogd(void)
+@@ -3136,37 +3138,11 @@ void wake_up_klogd(void)
preempt_enable();
}
@@ -467,6 +467,11 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-{
-}
-
+ void printk_trigger_flush(void)
+ {
+ wake_up_klogd();
+ }
+
-int vprintk_deferred(const char *fmt, va_list args)
-{
- int r;
@@ -629,7 +634,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
-@@ -971,7 +971,7 @@ static int sched_rt_runtime_exceeded(str
+@@ -977,7 +977,7 @@ static int sched_rt_runtime_exceeded(str
*/
if (likely(rt_b->rt_runtime)) {
rt_rq->rt_throttled = 1;