Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1628394 > unrolled thread
| Started by | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| First post | 2017-04-21 19:50 +0200 |
| Last post | 2017-04-21 19:50 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 6/9] sched/clock: Remove watchdog touching Peter Zijlstra <peterz@infradead.org> - 2017-04-21 19:50 +0200
Re: [PATCH 6/9] sched/clock: Remove watchdog touching Peter Zijlstra <peterz@infradead.org> - 2017-04-21 19:50 +0200
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2017-04-21 19:50 +0200 |
| Subject | [PATCH 6/9] sched/clock: Remove watchdog touching |
| Message-ID | <tyKQV-gp-5@gated-at.bofh.it> |
Commit:
2bacec8c318c ("sched: touch softlockup watchdog after idling")
introduced the touch_softlockup_watchdog_sched() call without
justification and I feel sched_clock management is not the right
place, it should only be concerned with producing semi coherent time.
If this causes watchdog thingies, we can find a better place.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
kernel/sched/clock.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
--- a/kernel/sched/clock.c
+++ b/kernel/sched/clock.c
@@ -410,15 +410,21 @@ void sched_clock_idle_sleep_event(void)
EXPORT_SYMBOL_GPL(sched_clock_idle_sleep_event);
/*
- * We just idled; resync with ktime. (called with irqs disabled):
+ * We just idled; resync with ktime.
*/
void sched_clock_idle_wakeup_event(void)
{
- if (timekeeping_suspended)
+ unsigned long flags;
+
+ if (sched_clock_stable())
+ return;
+
+ if (unlikely(timekeeping_suspended))
return;
+ local_irq_save(flags);
sched_clock_tick();
- touch_softlockup_watchdog_sched();
+ local_irq_restore(flags);
}
EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event);
[toc] | [next] | [standalone]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2017-04-21 19:50 +0200 |
| Message-ID | <tyKQV-gp-23@gated-at.bofh.it> |
| In reply to | #1628394 |
On Fri, Apr 21, 2017 at 04:58:02PM +0200, Peter Zijlstra wrote:
> Commit:
>
> 2bacec8c318c ("sched: touch softlockup watchdog after idling")
>
> introduced the touch_softlockup_watchdog_sched() call without
> justification and I feel sched_clock management is not the right
> place, it should only be concerned with producing semi coherent time.
>
> If this causes watchdog thingies, we can find a better place.
Hurmph, the rest should've gone in the next patch, which calls
sched_clock_idle_wakeup_event() from a place with IRQs enabled.
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> ---
> kernel/sched/clock.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> --- a/kernel/sched/clock.c
> +++ b/kernel/sched/clock.c
> @@ -410,15 +410,21 @@ void sched_clock_idle_sleep_event(void)
> EXPORT_SYMBOL_GPL(sched_clock_idle_sleep_event);
>
> /*
> - * We just idled; resync with ktime. (called with irqs disabled):
> + * We just idled; resync with ktime.
> */
> void sched_clock_idle_wakeup_event(void)
> {
> - if (timekeeping_suspended)
> + unsigned long flags;
> +
> + if (sched_clock_stable())
> + return;
> +
> + if (unlikely(timekeeping_suspended))
> return;
>
> + local_irq_save(flags);
> sched_clock_tick();
> - touch_softlockup_watchdog_sched();
> + local_irq_restore(flags);
> }
> EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event);
>
>
>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web