kernel-rt: update kernel-rt version to 5.10.0-146.0.0

This commit is contained in:
liyulei 2023-04-10 14:45:55 +08:00
parent 526790ff95
commit 64ccbc04b2
3 changed files with 43 additions and 26456 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
From 6ec3a78026d8b2eec230d6c06fec79e0d066b4f9 Mon Sep 17 00:00:00 2001 From 27268e71ff100fbb2b16dedb07d411efe86c91af Mon Sep 17 00:00:00 2001
From: liyulei <liyulei@kylinos.cn> From: liyulei <liyulei@kylinos.cn>
Date: Fri, 10 Mar 2023 16:22:16 +0800 Date: Mon, 10 Apr 2023 09:48:17 +0800
Subject: [PATCH] apply preempt RT patch Subject: [PATCH] apply preempt RT patch
--- ---
@ -366,7 +366,7 @@ Subject: [PATCH] apply preempt RT patch
kernel/sched/swait.c | 1 + kernel/sched/swait.c | 1 +
kernel/signal.c | 105 +- kernel/signal.c | 105 +-
kernel/smp.c | 14 +- kernel/smp.c | 14 +-
kernel/softirq.c | 428 ++++- kernel/softirq.c | 426 +++-
kernel/stop_machine.c | 27 +- kernel/stop_machine.c | 27 +-
kernel/time/hrtimer.c | 30 + kernel/time/hrtimer.c | 30 +
kernel/time/tick-sched.c | 2 +- kernel/time/tick-sched.c | 2 +-
@ -409,7 +409,7 @@ Subject: [PATCH] apply preempt RT patch
net/sched/sch_generic.c | 10 + net/sched/sch_generic.c | 10 +
net/sunrpc/svc_xprt.c | 4 +- net/sunrpc/svc_xprt.c | 4 +-
net/xfrm/xfrm_state.c | 3 +- net/xfrm/xfrm_state.c | 3 +-
405 files changed, 9011 insertions(+), 4803 deletions(-) 405 files changed, 9011 insertions(+), 4801 deletions(-)
delete mode 100644 arch/alpha/include/asm/kmap_types.h delete mode 100644 arch/alpha/include/asm/kmap_types.h
delete mode 100644 arch/arc/include/asm/kmap_types.h delete mode 100644 arch/arc/include/asm/kmap_types.h
delete mode 100644 arch/arm/include/asm/kmap_types.h delete mode 100644 arch/arm/include/asm/kmap_types.h
@ -822,7 +822,7 @@ index a966239f04e4..a7830c59481f 100644
-performs an IPI to inform all processors about the new mapping. This results -performs an IPI to inform all processors about the new mapping. This results
-in a significant performance penalty. -in a significant performance penalty.
diff --git a/arch/Kconfig b/arch/Kconfig diff --git a/arch/Kconfig b/arch/Kconfig
index f6d455c5a897..aa0ea1c2f046 100644 index b0319fa3c3ee..32694b49d01e 100644
--- a/arch/Kconfig --- a/arch/Kconfig
+++ b/arch/Kconfig +++ b/arch/Kconfig
@@ -50,6 +50,7 @@ config OPROFILE @@ -50,6 +50,7 @@ config OPROFILE
@ -1056,7 +1056,7 @@ index 1b9f473c6369..c79912a6b196 100644
+ alloc_kmap_pgtable(FIXMAP_BASE); + alloc_kmap_pgtable(FIXMAP_BASE);
} }
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9096aa34e482..9457b01b63ef 100644 index 6bc58af25bbb..334a76a8dd35 100644
--- a/arch/arm/Kconfig --- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig +++ b/arch/arm/Kconfig
@@ -31,6 +31,7 @@ config ARM @@ -31,6 +31,7 @@ config ARM
@ -1092,7 +1092,7 @@ index 9096aa34e482..9457b01b63ef 100644
select RTC_LIB select RTC_LIB
select SET_FS select SET_FS
select SYS_SUPPORTS_APM_EMULATION select SYS_SUPPORTS_APM_EMULATION
@@ -1509,6 +1512,7 @@ config HAVE_ARCH_PFN_VALID @@ -1520,6 +1523,7 @@ config HAVE_ARCH_PFN_VALID
config HIGHMEM config HIGHMEM
bool "High Memory Support" bool "High Memory Support"
depends on MMU depends on MMU
@ -1571,7 +1571,7 @@ index 187fab227b50..000000000000
- return (void *)vaddr; - return (void *)vaddr;
-} -}
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 6ccc012f62c2..6b3a32110ef4 100644 index 3dcf96f37a3c..7d3aefc50ada 100644
--- a/arch/arm64/Kconfig --- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig
@@ -78,6 +78,7 @@ config ARM64 @@ -78,6 +78,7 @@ config ARM64
@ -4272,7 +4272,7 @@ index e4abac6c9727..173999422ed8 100644
static struct kmsg_dumper kmsg_dumper = { static struct kmsg_dumper kmsg_dumper = {
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7e53f43447b4..521c550aa7d7 100644 index 29e12ad8bb20..29ed46138449 100644
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -16,6 +16,7 @@ config X86_32 @@ -16,6 +16,7 @@ config X86_32
@ -5416,7 +5416,7 @@ index 673196fe862e..0735ca5e8f86 100644
kmap_waitqueues_init(); kmap_waitqueues_init();
} }
diff --git a/block/blk-mq.c b/block/blk-mq.c diff --git a/block/blk-mq.c b/block/blk-mq.c
index 663c9f5d6556..4025e1bfab2e 100644 index 1eab99166fd5..dea9f38b4937 100644
--- a/block/blk-mq.c --- a/block/blk-mq.c
+++ b/block/blk-mq.c +++ b/block/blk-mq.c
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
@ -5428,7 +5428,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
static void blk_mq_poll_stats_start(struct request_queue *q); static void blk_mq_poll_stats_start(struct request_queue *q);
static void blk_mq_poll_stats_fn(struct blk_stat_callback *cb); static void blk_mq_poll_stats_fn(struct blk_stat_callback *cb);
@@ -657,80 +657,29 @@ void blk_mq_end_request(struct request *rq, blk_status_t error) @@ -650,80 +650,29 @@ void blk_mq_end_request(struct request *rq, blk_status_t error)
} }
EXPORT_SYMBOL(blk_mq_end_request); EXPORT_SYMBOL(blk_mq_end_request);
@ -5517,7 +5517,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
} }
static inline bool blk_mq_complete_need_ipi(struct request *rq) static inline bool blk_mq_complete_need_ipi(struct request *rq)
@@ -740,6 +689,14 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) @@ -733,6 +682,14 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq)
if (!IS_ENABLED(CONFIG_SMP) || if (!IS_ENABLED(CONFIG_SMP) ||
!test_bit(QUEUE_FLAG_SAME_COMP, &rq->q->queue_flags)) !test_bit(QUEUE_FLAG_SAME_COMP, &rq->q->queue_flags))
return false; return false;
@ -5532,7 +5532,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
/* same CPU or cache domain? Complete locally */ /* same CPU or cache domain? Complete locally */
if (cpu == rq->mq_ctx->cpu || if (cpu == rq->mq_ctx->cpu ||
@@ -751,6 +708,31 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) @@ -744,6 +701,31 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq)
return cpu_online(rq->mq_ctx->cpu); return cpu_online(rq->mq_ctx->cpu);
} }
@ -5564,7 +5564,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
bool blk_mq_complete_request_remote(struct request *rq) bool blk_mq_complete_request_remote(struct request *rq)
{ {
WRITE_ONCE(rq->state, MQ_RQ_COMPLETE); WRITE_ONCE(rq->state, MQ_RQ_COMPLETE);
@@ -763,15 +745,15 @@ bool blk_mq_complete_request_remote(struct request *rq) @@ -756,15 +738,15 @@ bool blk_mq_complete_request_remote(struct request *rq)
return false; return false;
if (blk_mq_complete_need_ipi(rq)) { if (blk_mq_complete_need_ipi(rq)) {
@ -5587,7 +5587,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
} }
EXPORT_SYMBOL_GPL(blk_mq_complete_request_remote); EXPORT_SYMBOL_GPL(blk_mq_complete_request_remote);
@@ -1686,14 +1668,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, @@ -1679,14 +1661,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async,
return; return;
if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) {
@ -5605,7 +5605,7 @@ index 663c9f5d6556..4025e1bfab2e 100644
} }
/* /*
@@ -4222,7 +4204,7 @@ static int __init blk_mq_init(void) @@ -4215,7 +4197,7 @@ static int __init blk_mq_init(void)
int i; int i;
for_each_possible_cpu(i) for_each_possible_cpu(i)
@ -6602,7 +6602,7 @@ index ce9429ca6dde..29ccbd6acf43 100644
This allows LEDs to be controlled by active CPUs. This shows This allows LEDs to be controlled by active CPUs. This shows
the active CPUs across an array of LEDs so you can see which the active CPUs across an array of LEDs so you can see which
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 454d90b785b9..61bea746917e 100644 index 27f961aa2714..02d972109a98 100644
--- a/drivers/md/raid5.c --- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c +++ b/drivers/md/raid5.c
@@ -2217,8 +2217,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request) @@ -2217,8 +2217,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
@ -6626,7 +6626,7 @@ index 454d90b785b9..61bea746917e 100644
} }
static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh) static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh)
@@ -7089,6 +7091,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node) @@ -7088,6 +7090,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
__func__, cpu); __func__, cpu);
return -ENOMEM; return -ENOMEM;
} }
@ -8574,7 +8574,7 @@ index b4d43a4af5f7..ac255e889462 100644
#define __preempt_schedule() preempt_schedule() #define __preempt_schedule() preempt_schedule()
extern asmlinkage void preempt_schedule_notrace(void); extern asmlinkage void preempt_schedule_notrace(void);
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 171884608cad..03351f985871 100644 index 9ede0a81e466..31a67de40ac3 100644
--- a/include/linux/blkdev.h --- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h +++ b/include/linux/blkdev.h
@@ -166,7 +166,7 @@ struct request { @@ -166,7 +166,7 @@ struct request {
@ -13171,7 +13171,7 @@ index 26a81ea63156..c15ca545011a 100644
spin_unlock(&sighand->siglock); spin_unlock(&sighand->siglock);
diff --git a/kernel/fork.c b/kernel/fork.c diff --git a/kernel/fork.c b/kernel/fork.c
index 0e141623a95d..7cb01624ae0c 100644 index f0aa2da990b8..627f3d35cc0e 100644
--- a/kernel/fork.c --- a/kernel/fork.c
+++ b/kernel/fork.c +++ b/kernel/fork.c
@@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
@ -13191,7 +13191,7 @@ index 0e141623a95d..7cb01624ae0c 100644
return; return;
} }
#endif #endif
@@ -693,6 +694,19 @@ void __mmdrop(struct mm_struct *mm) @@ -696,6 +697,19 @@ void __mmdrop(struct mm_struct *mm)
} }
EXPORT_SYMBOL_GPL(__mmdrop); EXPORT_SYMBOL_GPL(__mmdrop);
@ -13211,7 +13211,7 @@ index 0e141623a95d..7cb01624ae0c 100644
static void mmdrop_async_fn(struct work_struct *work) static void mmdrop_async_fn(struct work_struct *work)
{ {
struct mm_struct *mm; struct mm_struct *mm;
@@ -734,6 +748,15 @@ void __put_task_struct(struct task_struct *tsk) @@ -737,6 +751,15 @@ void __put_task_struct(struct task_struct *tsk)
WARN_ON(refcount_read(&tsk->usage)); WARN_ON(refcount_read(&tsk->usage));
WARN_ON(tsk == current); WARN_ON(tsk == current);
@ -13227,7 +13227,7 @@ index 0e141623a95d..7cb01624ae0c 100644
io_uring_free(tsk); io_uring_free(tsk);
cgroup_free(tsk); cgroup_free(tsk);
task_numa_free(tsk, true); task_numa_free(tsk, true);
@@ -951,11 +974,13 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -954,11 +977,13 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
tsk->task_frag.page = NULL; tsk->task_frag.page = NULL;
tsk->wake_q.next = NULL; tsk->wake_q.next = NULL;
tsk->pf_io_worker = NULL; tsk->pf_io_worker = NULL;
@ -13241,7 +13241,7 @@ index 0e141623a95d..7cb01624ae0c 100644
#ifdef CONFIG_FAULT_INJECTION #ifdef CONFIG_FAULT_INJECTION
tsk->fail_nth = 0; tsk->fail_nth = 0;
#endif #endif
@@ -2079,6 +2104,7 @@ static __latent_entropy struct task_struct *copy_process( @@ -2082,6 +2107,7 @@ static __latent_entropy struct task_struct *copy_process(
spin_lock_init(&p->alloc_lock); spin_lock_init(&p->alloc_lock);
init_sigpending(&p->pending); init_sigpending(&p->pending);
@ -22333,7 +22333,7 @@ index 114776d0d11e..6d35929a1990 100644
local_irq_restore(flags); local_irq_restore(flags);
} }
diff --git a/kernel/softirq.c b/kernel/softirq.c diff --git a/kernel/softirq.c b/kernel/softirq.c
index 09229ad82209..c9adc5c46248 100644 index 19668d614f47..aafbb7a0f9ca 100644
--- a/kernel/softirq.c --- a/kernel/softirq.c
+++ b/kernel/softirq.c +++ b/kernel/softirq.c
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
@ -22496,7 +22496,7 @@ index 09229ad82209..c9adc5c46248 100644
+ +
+ WARN_ON_ONCE(in_irq()); + WARN_ON_ONCE(in_irq());
+ lockdep_assert_irqs_enabled(); + lockdep_assert_irqs_enabled();
+
+ local_irq_save(flags); + local_irq_save(flags);
+ curcnt = __this_cpu_read(softirq_ctrl.cnt); + curcnt = __this_cpu_read(softirq_ctrl.cnt);
+ +
@ -22554,7 +22554,7 @@ index 09229ad82209..c9adc5c46248 100644
+ +
+static inline void softirq_handle_begin(void) { } +static inline void softirq_handle_begin(void) { }
+static inline void softirq_handle_end(void) { } +static inline void softirq_handle_end(void) { }
+
+static inline bool should_wake_ksoftirqd(void) +static inline bool should_wake_ksoftirqd(void)
+{ +{
+ return !this_cpu_read(softirq_ctrl.cnt); + return !this_cpu_read(softirq_ctrl.cnt);
@ -22734,7 +22734,7 @@ index 09229ad82209..c9adc5c46248 100644
} }
/** /**
@@ -371,32 +609,6 @@ void irq_enter(void) @@ -371,31 +609,7 @@ void irq_enter(void)
irq_enter_rcu(); irq_enter_rcu();
} }
@ -22742,8 +22742,8 @@ index 09229ad82209..c9adc5c46248 100644
-{ -{
- if (ksoftirqd_running(local_softirq_pending())) - if (ksoftirqd_running(local_softirq_pending()))
- return; - return;
-
- if (!force_irqthreads) { - if (!force_irqthreads || !__this_cpu_read(ksoftirqd)) {
-#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK -#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
- /* - /*
- * We can safely execute softirq on the current stack if - * We can safely execute softirq on the current stack if
@ -22763,11 +22763,10 @@ index 09229ad82209..c9adc5c46248 100644
- wakeup_softirqd(); - wakeup_softirqd();
- } - }
-} -}
-
static inline void tick_irq_exit(void) static inline void tick_irq_exit(void)
{ {
#ifdef CONFIG_NO_HZ_COMMON @@ -417,7 +631,7 @@ static inline void __irq_exit_rcu(void)
@@ -417,7 +629,7 @@ static inline void __irq_exit_rcu(void)
#else #else
lockdep_assert_irqs_disabled(); lockdep_assert_irqs_disabled();
#endif #endif
@ -22776,7 +22775,7 @@ index 09229ad82209..c9adc5c46248 100644
preempt_count_sub(HARDIRQ_OFFSET); preempt_count_sub(HARDIRQ_OFFSET);
if (!in_interrupt() && local_softirq_pending()) if (!in_interrupt() && local_softirq_pending())
invoke_softirq(); invoke_softirq();
@@ -466,7 +678,7 @@ inline void raise_softirq_irqoff(unsigned int nr) @@ -466,7 +680,7 @@ inline void raise_softirq_irqoff(unsigned int nr)
* Otherwise we wake up ksoftirqd to make sure we * Otherwise we wake up ksoftirqd to make sure we
* schedule the softirq soon. * schedule the softirq soon.
*/ */
@ -22785,7 +22784,7 @@ index 09229ad82209..c9adc5c46248 100644
wakeup_softirqd(); wakeup_softirqd();
} }
@@ -532,6 +744,16 @@ void __tasklet_hi_schedule(struct tasklet_struct *t) @@ -532,6 +746,16 @@ void __tasklet_hi_schedule(struct tasklet_struct *t)
} }
EXPORT_SYMBOL(__tasklet_hi_schedule); EXPORT_SYMBOL(__tasklet_hi_schedule);
@ -22802,7 +22801,7 @@ index 09229ad82209..c9adc5c46248 100644
static void tasklet_action_common(struct softirq_action *a, static void tasklet_action_common(struct softirq_action *a,
struct tasklet_head *tl_head, struct tasklet_head *tl_head,
unsigned int softirq_nr) unsigned int softirq_nr)
@@ -551,8 +773,7 @@ static void tasklet_action_common(struct softirq_action *a, @@ -551,8 +775,7 @@ static void tasklet_action_common(struct softirq_action *a,
if (tasklet_trylock(t)) { if (tasklet_trylock(t)) {
if (!atomic_read(&t->count)) { if (!atomic_read(&t->count)) {
@ -22812,7 +22811,7 @@ index 09229ad82209..c9adc5c46248 100644
BUG(); BUG();
if (t->use_callback) if (t->use_callback)
t->callback(t); t->callback(t);
@@ -607,21 +828,62 @@ void tasklet_init(struct tasklet_struct *t, @@ -607,21 +830,62 @@ void tasklet_init(struct tasklet_struct *t,
} }
EXPORT_SYMBOL(tasklet_init); EXPORT_SYMBOL(tasklet_init);
@ -22881,7 +22880,7 @@ index 09229ad82209..c9adc5c46248 100644
void __init softirq_init(void) void __init softirq_init(void)
{ {
int cpu; int cpu;
@@ -644,18 +906,18 @@ static int ksoftirqd_should_run(unsigned int cpu) @@ -644,18 +908,18 @@ static int ksoftirqd_should_run(unsigned int cpu)
static void run_ksoftirqd(unsigned int cpu) static void run_ksoftirqd(unsigned int cpu)
{ {
@ -23063,7 +23062,7 @@ index f7d3a108e27c..f24e6fed6633 100644
ret = try_to_del_timer_sync(timer); ret = try_to_del_timer_sync(timer);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 4e130e2bb566..50a2db7a791d 100644 index 951181d5b9fb..9e4845cf65e4 100644
--- a/kernel/trace/trace.c --- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c +++ b/kernel/trace/trace.c
@@ -2592,60 +2592,43 @@ enum print_line_t trace_handle_return(struct trace_seq *s) @@ -2592,60 +2592,43 @@ enum print_line_t trace_handle_return(struct trace_seq *s)

View File

@ -10,9 +10,9 @@
%global upstream_version 5.10 %global upstream_version 5.10
%global upstream_sublevel 0 %global upstream_sublevel 0
%global devel_release 144 %global devel_release 146
%global maintenance_release .0.0 %global maintenance_release .0.0
%global pkg_release .58 %global pkg_release .59
%global rt_release .rt62 %global rt_release .rt62
%define with_debuginfo 1 %define with_debuginfo 1
@ -887,6 +887,9 @@ fi
%changelog %changelog
* Wed Apr 10 2023 liyulei <liyulei@kylinos.cn> - 5.10.0-146.0.0.59
- update kernel-rt version to 5.10.0-146.0.0
* Wed Mar 10 2023 liyulei <liyulei@kylinos.cn> - 5.10.0-144.0.0.58 * Wed Mar 10 2023 liyulei <liyulei@kylinos.cn> - 5.10.0-144.0.0.58
- update kernel-rt version to 5.10.0-144.0.0 - update kernel-rt version to 5.10.0-144.0.0