* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic [not found] ` <436fa401-e113-0393-f47a-ed23890364d7@linux.ibm.com> @ 2022-09-26 12:13 ` Peter Zijlstra 2022-09-26 12:32 ` Christian Borntraeger 1 sibling, 0 replies; 11+ messages in thread From: Peter Zijlstra @ 2022-09-26 12:13 UTC (permalink / raw) To: Christian Borntraeger Cc: vincent.guittot, linux-pm, bigeasy, amit, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization, will, dietmar.eggemann, ebiederm On Mon, Sep 26, 2022 at 12:55:21PM +0200, Christian Borntraeger wrote: > > > Am 26.09.22 um 10:06 schrieb Christian Borntraeger: > > > > > > Am 23.09.22 um 09:53 schrieb Christian Borntraeger: > > > Am 23.09.22 um 09:21 schrieb Christian Borntraeger: > > > > Peter, > > > > > > > > as a heads-up. This commit (bisected and verified) triggers a > > > > regression in our KVM on s390x CI. The symptom is that a specific > > > > testcase (start a guest with next kernel and a poky ramdisk, > > > > then ssh via vsock into the guest and run the reboot command) now > > > > takes much longer (300 instead of 20 seconds). From a first look > > > > it seems that the sshd takes very long to end during shutdown > > > > but I have not looked into that yet. > > > > Any quick idea? > > > > > > > > Christian > > > > > > the sshd seems to hang in virtio-serial (not vsock). > > > > FWIW, sshd does not seem to hang, instead it seems to busy loop in > > wait_port_writable calling into the scheduler over and over again. > > -#define TASK_FREEZABLE 0x00002000 > +#define TASK_FREEZABLE 0x00000000 > > "Fixes" the issue. Just have to find out which of users is responsible. Since it's not the wait_port_writable() one -- we already tested that by virtue of 's/wait_event_freezable/wait_event/' there, it must be on the producing side of that port. But I'm having a wee bit of trouble following that code. Is there a task stuck in FROZEN state? -- then again, I thought you said there was no actual suspend involved, so that should not be it either. I'm curious though -- how far does it get into the scheduler? It should call schedule() with __state == TASK_INTERRUPTIBLE|TASK_FREEZABLE, which is quite sufficient to get it off the runqueue, who then puts it back? Or is it bailing early in the wait_event loop? _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic [not found] ` <436fa401-e113-0393-f47a-ed23890364d7@linux.ibm.com> 2022-09-26 12:13 ` [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic Peter Zijlstra @ 2022-09-26 12:32 ` Christian Borntraeger 2022-09-26 12:55 ` Peter Zijlstra 1 sibling, 1 reply; 11+ messages in thread From: Christian Borntraeger @ 2022-09-26 12:32 UTC (permalink / raw) To: peterz Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 26.09.22 um 12:55 schrieb Christian Borntraeger: > > > Am 26.09.22 um 10:06 schrieb Christian Borntraeger: >> >> >> Am 23.09.22 um 09:53 schrieb Christian Borntraeger: >>> Am 23.09.22 um 09:21 schrieb Christian Borntraeger: >>>> Peter, >>>> >>>> as a heads-up. This commit (bisected and verified) triggers a >>>> regression in our KVM on s390x CI. The symptom is that a specific >>>> testcase (start a guest with next kernel and a poky ramdisk, >>>> then ssh via vsock into the guest and run the reboot command) now >>>> takes much longer (300 instead of 20 seconds). From a first look >>>> it seems that the sshd takes very long to end during shutdown >>>> but I have not looked into that yet. >>>> Any quick idea? >>>> >>>> Christian >>> >>> the sshd seems to hang in virtio-serial (not vsock). >> >> FWIW, sshd does not seem to hang, instead it seems to busy loop in >> wait_port_writable calling into the scheduler over and over again. > > -#define TASK_FREEZABLE 0x00002000 > +#define TASK_FREEZABLE 0x00000000 > > "Fixes" the issue. Just have to find out which of users is responsible. So it seems that my initial test was not good enough. diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 9fa3c76a267f..e93df4f735fe 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -790,7 +790,7 @@ static int wait_port_writable(struct port *port, bool nonblock) if (nonblock) return -EAGAIN; - ret = wait_event_freezable(port->waitqueue, + ret = wait_event_interruptible(port->waitqueue, !will_write_block(port)); if (ret < 0) return ret; Does fix the problem. My initial test was the following --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -790,10 +790,8 @@ static int wait_port_writable(struct port *port, bool nonblock) if (nonblock) return -EAGAIN; - ret = wait_event_freezable(port->waitqueue, + wait_event(port->waitqueue, !will_write_block(port)); - if (ret < 0) - return ret; } /* Port got hot-unplugged. */ if (!port->guest_connected) and obviously it did not provide an exit path. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 12:32 ` Christian Borntraeger @ 2022-09-26 12:55 ` Peter Zijlstra 2022-09-26 13:23 ` Christian Borntraeger 0 siblings, 1 reply; 11+ messages in thread From: Peter Zijlstra @ 2022-09-26 12:55 UTC (permalink / raw) To: Christian Borntraeger Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm On Mon, Sep 26, 2022 at 02:32:24PM +0200, Christian Borntraeger wrote: > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c > index 9fa3c76a267f..e93df4f735fe 100644 > --- a/drivers/char/virtio_console.c > +++ b/drivers/char/virtio_console.c > @@ -790,7 +790,7 @@ static int wait_port_writable(struct port *port, bool nonblock) > if (nonblock) > return -EAGAIN; > - ret = wait_event_freezable(port->waitqueue, > + ret = wait_event_interruptible(port->waitqueue, > !will_write_block(port)); > if (ret < 0) > return ret; > > Does fix the problem. It's almost as if someone does try_to_wake_up(.state = TASK_FREEZABLE) -- which would be quite insane. Could you please test with something like the below on? I can boot that with KVM, but obviously I didn't suffer any weirdness to begin with :/ --- diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 4e6a6417211f..ef9ccfc3a8c0 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4051,6 +4051,8 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) unsigned long flags; int cpu, success = 0; + WARN_ON_ONCE(state & TASK_FREEZABLE); + preempt_disable(); if (p == current) { /* _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 12:55 ` Peter Zijlstra @ 2022-09-26 13:23 ` Christian Borntraeger 2022-09-26 13:37 ` Peter Zijlstra 0 siblings, 1 reply; 11+ messages in thread From: Christian Borntraeger @ 2022-09-26 13:23 UTC (permalink / raw) To: Peter Zijlstra Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 26.09.22 um 14:55 schrieb Peter Zijlstra: > Could you please test with something like the below on? I can boot that > with KVM, but obviously I didn't suffer any weirdness to begin with :/ > > --- > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 4e6a6417211f..ef9ccfc3a8c0 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -4051,6 +4051,8 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) > unsigned long flags; > int cpu, success = 0; > > + WARN_ON_ONCE(state & TASK_FREEZABLE); > + > preempt_disable(); > if (p == current) { > /* Does not seem to trigger. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 13:23 ` Christian Borntraeger @ 2022-09-26 13:37 ` Peter Zijlstra 2022-09-26 13:54 ` Christian Borntraeger 2022-09-26 15:49 ` Christian Borntraeger 0 siblings, 2 replies; 11+ messages in thread From: Peter Zijlstra @ 2022-09-26 13:37 UTC (permalink / raw) To: Christian Borntraeger Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm On Mon, Sep 26, 2022 at 03:23:10PM +0200, Christian Borntraeger wrote: > Am 26.09.22 um 14:55 schrieb Peter Zijlstra: > > > Could you please test with something like the below on? I can boot that > > with KVM, but obviously I didn't suffer any weirdness to begin with :/ > > > > --- > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > > index 4e6a6417211f..ef9ccfc3a8c0 100644 > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -4051,6 +4051,8 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) > > unsigned long flags; > > int cpu, success = 0; > > + WARN_ON_ONCE(state & TASK_FREEZABLE); > > + > > preempt_disable(); > > if (p == current) { > > /* > > Does not seem to trigger. Moo -- quite the puzzle this :/ I'll go stare at it more then. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 13:37 ` Peter Zijlstra @ 2022-09-26 13:54 ` Christian Borntraeger 2022-09-26 15:49 ` Christian Borntraeger 1 sibling, 0 replies; 11+ messages in thread From: Christian Borntraeger @ 2022-09-26 13:54 UTC (permalink / raw) To: Peter Zijlstra Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 26.09.22 um 15:37 schrieb Peter Zijlstra: > On Mon, Sep 26, 2022 at 03:23:10PM +0200, Christian Borntraeger wrote: >> Am 26.09.22 um 14:55 schrieb Peter Zijlstra: >> >>> Could you please test with something like the below on? I can boot that >>> with KVM, but obviously I didn't suffer any weirdness to begin with :/ >>> >>> --- >>> diff --git a/kernel/sched/core.c b/kernel/sched/core.c >>> index 4e6a6417211f..ef9ccfc3a8c0 100644 >>> --- a/kernel/sched/core.c >>> +++ b/kernel/sched/core.c >>> @@ -4051,6 +4051,8 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) >>> unsigned long flags; >>> int cpu, success = 0; >>> + WARN_ON_ONCE(state & TASK_FREEZABLE); >>> + >>> preempt_disable(); >>> if (p == current) { >>> /* >> >> Does not seem to trigger. > > Moo -- quite the puzzle this :/ I'll go stare at it more then. In the end this is about the end of the sshd process (shutting it down). I can also trigger the problem by sending a SIGTERM so its not about the shutdown itself. Pofiling the guest I see scheduler functions like sched_clock, pick_next_entity, update_min_vruntime and so on with 100% system time. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 13:37 ` Peter Zijlstra 2022-09-26 13:54 ` Christian Borntraeger @ 2022-09-26 15:49 ` Christian Borntraeger 2022-09-26 18:06 ` Peter Zijlstra 1 sibling, 1 reply; 11+ messages in thread From: Christian Borntraeger @ 2022-09-26 15:49 UTC (permalink / raw) To: Peter Zijlstra Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 26.09.22 um 15:37 schrieb Peter Zijlstra: > On Mon, Sep 26, 2022 at 03:23:10PM +0200, Christian Borntraeger wrote: >> Am 26.09.22 um 14:55 schrieb Peter Zijlstra: >> >>> Could you please test with something like the below on? I can boot that >>> with KVM, but obviously I didn't suffer any weirdness to begin with :/ >>> >>> --- >>> diff --git a/kernel/sched/core.c b/kernel/sched/core.c >>> index 4e6a6417211f..ef9ccfc3a8c0 100644 >>> --- a/kernel/sched/core.c >>> +++ b/kernel/sched/core.c >>> @@ -4051,6 +4051,8 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) >>> unsigned long flags; >>> int cpu, success = 0; >>> + WARN_ON_ONCE(state & TASK_FREEZABLE); >>> + >>> preempt_disable(); >>> if (p == current) { >>> /* >> >> Does not seem to trigger. > > Moo -- quite the puzzle this :/ I'll go stare at it more then. Hmm, #define ___wait_is_interruptible(state) \ (!__builtin_constant_p(state) || \ state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ That would not trigger when state is also TASK_FREEZABLE, no? _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 15:49 ` Christian Borntraeger @ 2022-09-26 18:06 ` Peter Zijlstra 2022-09-26 18:22 ` Peter Zijlstra 0 siblings, 1 reply; 11+ messages in thread From: Peter Zijlstra @ 2022-09-26 18:06 UTC (permalink / raw) To: Christian Borntraeger Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm On Mon, Sep 26, 2022 at 05:49:16PM +0200, Christian Borntraeger wrote: > Hmm, > > #define ___wait_is_interruptible(state) \ > (!__builtin_constant_p(state) || \ > state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ > > That would not trigger when state is also TASK_FREEZABLE, no? Spot on! signal_pending_state() writes that as: state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL) which is the correct form. diff --git a/include/linux/wait.h b/include/linux/wait.h index 14ad8a0e9fac..7f5a51aae0a7 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -281,7 +281,7 @@ static inline void wake_up_pollfree(struct wait_queue_head *wq_head) #define ___wait_is_interruptible(state) \ (!__builtin_constant_p(state) || \ - state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ + (state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL))) extern void init_wait_entry(struct wait_queue_entry *wq_entry, int flags); Let me go git-grep some to see if there's more similar fail. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 18:06 ` Peter Zijlstra @ 2022-09-26 18:22 ` Peter Zijlstra 2022-09-27 5:35 ` Christian Borntraeger 0 siblings, 1 reply; 11+ messages in thread From: Peter Zijlstra @ 2022-09-26 18:22 UTC (permalink / raw) To: Christian Borntraeger Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm On Mon, Sep 26, 2022 at 08:06:46PM +0200, Peter Zijlstra wrote: > Let me go git-grep some to see if there's more similar fail. I've ended up with the below... --- include/linux/wait.h | 2 +- kernel/hung_task.c | 8 ++++++-- kernel/sched/core.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/linux/wait.h b/include/linux/wait.h index 14ad8a0e9fac..7f5a51aae0a7 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -281,7 +281,7 @@ static inline void wake_up_pollfree(struct wait_queue_head *wq_head) #define ___wait_is_interruptible(state) \ (!__builtin_constant_p(state) || \ - state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ + (state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL))) extern void init_wait_entry(struct wait_queue_entry *wq_entry, int flags); diff --git a/kernel/hung_task.c b/kernel/hung_task.c index f1321c03c32a..4a8a713fd67b 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -191,6 +191,8 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout) hung_task_show_lock = false; rcu_read_lock(); for_each_process_thread(g, t) { + unsigned int state; + if (!max_count--) goto unlock; if (time_after(jiffies, last_break + HUNG_TASK_LOCK_BREAK)) { @@ -198,8 +200,10 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout) goto unlock; last_break = jiffies; } - /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */ - if (READ_ONCE(t->__state) == TASK_UNINTERRUPTIBLE) + /* skip the TASK_KILLABLE tasks -- these can be killed */ + state == READ_ONCE(t->__state); + if ((state & TASK_UNINTERRUPTIBLE) && + !(state & TASK_WAKEKILL)) check_hung_task(t, timeout); } unlock: diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 1095917ed048..12ee5b98e2c4 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8885,7 +8885,7 @@ state_filter_match(unsigned long state_filter, struct task_struct *p) * When looking for TASK_UNINTERRUPTIBLE skip TASK_IDLE (allows * TASK_KILLABLE). */ - if (state_filter == TASK_UNINTERRUPTIBLE && state == TASK_IDLE) + if (state_filter == TASK_UNINTERRUPTIBLE && state & TASK_NOLOAD) return false; return true; _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-26 18:22 ` Peter Zijlstra @ 2022-09-27 5:35 ` Christian Borntraeger 2022-09-28 5:44 ` Christian Borntraeger 0 siblings, 1 reply; 11+ messages in thread From: Christian Borntraeger @ 2022-09-27 5:35 UTC (permalink / raw) To: Peter Zijlstra Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 26.09.22 um 20:22 schrieb Peter Zijlstra: > On Mon, Sep 26, 2022 at 08:06:46PM +0200, Peter Zijlstra wrote: > >> Let me go git-grep some to see if there's more similar fail. > > I've ended up with the below... Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Kind of scary that nobody else has reported any regression. I guess the freezable variant is just not used widely. > > --- > include/linux/wait.h | 2 +- > kernel/hung_task.c | 8 ++++++-- > kernel/sched/core.c | 2 +- > 3 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/include/linux/wait.h b/include/linux/wait.h > index 14ad8a0e9fac..7f5a51aae0a7 100644 > --- a/include/linux/wait.h > +++ b/include/linux/wait.h > @@ -281,7 +281,7 @@ static inline void wake_up_pollfree(struct wait_queue_head *wq_head) > > #define ___wait_is_interruptible(state) \ > (!__builtin_constant_p(state) || \ > - state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \ > + (state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL))) > > extern void init_wait_entry(struct wait_queue_entry *wq_entry, int flags); > > diff --git a/kernel/hung_task.c b/kernel/hung_task.c > index f1321c03c32a..4a8a713fd67b 100644 > --- a/kernel/hung_task.c > +++ b/kernel/hung_task.c > @@ -191,6 +191,8 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout) > hung_task_show_lock = false; > rcu_read_lock(); > for_each_process_thread(g, t) { > + unsigned int state; > + > if (!max_count--) > goto unlock; > if (time_after(jiffies, last_break + HUNG_TASK_LOCK_BREAK)) { > @@ -198,8 +200,10 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout) > goto unlock; > last_break = jiffies; > } > - /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */ > - if (READ_ONCE(t->__state) == TASK_UNINTERRUPTIBLE) > + /* skip the TASK_KILLABLE tasks -- these can be killed */ > + state == READ_ONCE(t->__state); > + if ((state & TASK_UNINTERRUPTIBLE) && > + !(state & TASK_WAKEKILL)) > check_hung_task(t, timeout); > } > unlock: > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 1095917ed048..12ee5b98e2c4 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -8885,7 +8885,7 @@ state_filter_match(unsigned long state_filter, struct task_struct *p) > * When looking for TASK_UNINTERRUPTIBLE skip TASK_IDLE (allows > * TASK_KILLABLE). > */ > - if (state_filter == TASK_UNINTERRUPTIBLE && state == TASK_IDLE) > + if (state_filter == TASK_UNINTERRUPTIBLE && state & TASK_NOLOAD) > return false; > > return true; _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic 2022-09-27 5:35 ` Christian Borntraeger @ 2022-09-28 5:44 ` Christian Borntraeger 0 siblings, 0 replies; 11+ messages in thread From: Christian Borntraeger @ 2022-09-28 5:44 UTC (permalink / raw) To: Peter Zijlstra Cc: vincent.guittot, linux-pm, bigeasy, Amit Shah, rjw, linux-kernel, rostedt, mingo, Marc Hartmayer, mgorman, oleg, tj, virtualization@lists.linux-foundation.org, will, dietmar.eggemann, ebiederm Am 27.09.22 um 07:35 schrieb Christian Borntraeger: > > > Am 26.09.22 um 20:22 schrieb Peter Zijlstra: >> On Mon, Sep 26, 2022 at 08:06:46PM +0200, Peter Zijlstra wrote: >> >>> Let me go git-grep some to see if there's more similar fail. >> >> I've ended up with the below... > > Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> > > Kind of scary that nobody else has reported any regression. I guess the freezable variant is just not used widely. Will you queue this fix for next soon? _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-09-28 5:45 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220822114649.055452969@infradead.org>
[not found] ` <20220923072104.2013212-1-borntraeger@linux.ibm.com>
[not found] ` <56576c3c-fe9b-59cf-95b8-158734320f24@linux.ibm.com>
[not found] ` <b1d41989-7f4f-eb1d-db35-07a6f6b7a7f5@linux.ibm.com>
[not found] ` <436fa401-e113-0393-f47a-ed23890364d7@linux.ibm.com>
2022-09-26 12:13 ` [PATCH v3 6/6] freezer,sched: Rewrite core freezer logic Peter Zijlstra
2022-09-26 12:32 ` Christian Borntraeger
2022-09-26 12:55 ` Peter Zijlstra
2022-09-26 13:23 ` Christian Borntraeger
2022-09-26 13:37 ` Peter Zijlstra
2022-09-26 13:54 ` Christian Borntraeger
2022-09-26 15:49 ` Christian Borntraeger
2022-09-26 18:06 ` Peter Zijlstra
2022-09-26 18:22 ` Peter Zijlstra
2022-09-27 5:35 ` Christian Borntraeger
2022-09-28 5:44 ` Christian Borntraeger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).