Thread (9 messages) 9 messages, 3 authors, 2021-01-08

RE: [PATCH] [RFC] rt: kernel/sched/core: fix kthread_park() pending too long when CPU un-plugged

From: Ran Wang <hidden>
Date: 2021-01-08 08:46:21
Also in: lkml

Hi Sebastian, Peter

Thursday, January 7, 2021 11:29 PM, Sebastian Siewior wrote:
On 2021-01-07 11:45:39 [+0100], Peter Zijlstra wrote:
quoted
On Thu, Jan 07, 2021 at 05:18:41PM +0800, Ran Wang wrote:
quoted
+
+			if (IS_ENABLED(CONFIG_PREEMPT_RT) &&
+			    !strncmp(p->comm, "ksoftirqd/", 10))
+				schedule_hrtimeout(&to,
+					HRTIMER_MODE_REL | HRTIMER_MODE_HARD);
+			else
+				schedule_hrtimeout(&to, HRTIMER_MODE_REL);
This is horrific, why did you not self-censor and spare me the mental
anguish of having to formulate a CoC compliant response?

It also violates coding style, but given the total lack of any sense,
that seems like a minor detail.

Why can't we use HRTIMER_MODE_HARD unconditionally?
I had a similar patch in -RT and dropped it in v5.10-rc7-rt16.
It was added because RT couldn't boot since creating the boot-threads didn't work before the ksoftirqd was up. This was fixed by commit
   26c7295be0c5e ("kthread: Do not preempt current task if it is going to call schedule()")
I tried applying above commit to linux-5.6.y-rt, it could resolve my problem on LX2160ARDB, THANKS!
and live was good again.
tglx (also) suggested to add HRTIMER_MODE_HARD unconditionally (it looked at SYSTEM_STATE back then) and I was only worried some
abuse via userland.
Got it.

Regards,
Ran
This sleep can be triggered by ptrace/strace() and with brief testing I can trigger the sleep there but I don't get it anywhere near where I
would notice it with cyclictest.

Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help