softirq-make-fifo.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
917aa12be4
commit
5636745396
|
@ -386,6 +386,8 @@ asmlinkage void do_softirq(void)
|
|||
|
||||
static inline void local_bh_disable_nort(void) { local_bh_disable(); }
|
||||
static inline void _local_bh_enable_nort(void) { _local_bh_enable(); }
|
||||
static void ksoftirqd_set_sched_params(unsigned int cpu) { }
|
||||
static void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) { }
|
||||
|
||||
#else /* !PREEMPT_RT_FULL */
|
||||
|
||||
|
@ -559,6 +561,20 @@ void thread_do_softirq(void)
|
|||
static inline void local_bh_disable_nort(void) { }
|
||||
static inline void _local_bh_enable_nort(void) { }
|
||||
|
||||
static inline void ksoftirqd_set_sched_params(unsigned int cpu)
|
||||
{
|
||||
struct sched_param param = { .sched_priority = 1 };
|
||||
|
||||
sched_setscheduler(current, SCHED_FIFO, ¶m);
|
||||
}
|
||||
|
||||
static inline void ksoftirqd_clr_sched_params(unsigned int cpu, bool online)
|
||||
{
|
||||
struct sched_param param = { .sched_priority = 0 };
|
||||
|
||||
sched_setscheduler(current, SCHED_NORMAL, ¶m);
|
||||
}
|
||||
|
||||
#endif /* PREEMPT_RT_FULL */
|
||||
/*
|
||||
* Enter an interrupt context.
|
||||
|
@ -996,6 +1012,8 @@ static struct notifier_block cpu_nfb = {
|
|||
|
||||
static struct smp_hotplug_thread softirq_threads = {
|
||||
.store = &ksoftirqd,
|
||||
.setup = ksoftirqd_set_sched_params,
|
||||
.cleanup = ksoftirqd_clr_sched_params,
|
||||
.thread_should_run = ksoftirqd_should_run,
|
||||
.thread_fn = run_ksoftirqd,
|
||||
.thread_comm = "ksoftirqd/%u",
|
||||
|
|
Loading…
Reference in New Issue