Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14cc2d15 authored by Lingutla Chandrasekhar's avatar Lingutla Chandrasekhar
Browse files

Revert "softirq: Let ksoftirqd do its job"



Ksfotirqd is a normal priority CFS task. It can experience higher
scheduling latency under heavy load conditions. Currently once
asynchronous softirq processing is deferred to ksoftirqd, softirqs
are not processed further until ksoftirqd task gets a chance to run.
High latencies for softirqs like TIMER, HI TASKLET is not acceptable.

So revert 'commit 4cd13c21 ("softirq: Let ksoftirqd do its job")'.

Change-Id: I38a1a88b5f42dd534c65d739dbb7e4321a7904db
Signed-off-by: default avatarLingutla Chandrasekhar <clingutla@codeaurora.org>
parent 14681b57
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -84,17 +84,6 @@ static void wakeup_softirqd(void)
		wake_up_process(tsk);
}

/*
 * If ksoftirqd is scheduled, we do not want to process pending softirqs
 * right now. Let ksoftirqd handle this at its own rate, to get fairness.
 */
static bool ksoftirqd_running(void)
{
	struct task_struct *tsk = __this_cpu_read(ksoftirqd);

	return tsk && (tsk->state == TASK_RUNNING);
}

/*
 * preempt_count and SOFTIRQ_OFFSET usage:
 * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
@@ -336,7 +325,7 @@ asmlinkage __visible void do_softirq(void)

	pending = local_softirq_pending();

	if (pending && !ksoftirqd_running())
	if (pending)
		do_softirq_own_stack();

	local_irq_restore(flags);
@@ -363,9 +352,6 @@ void irq_enter(void)

static inline void invoke_softirq(void)
{
	if (ksoftirqd_running())
		return;

	if (!force_irqthreads && !defer_for_rt()) {
#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
		/*