From: Peter Zijlstra <peterz@infradead.org>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: tglx@linutronix.de, rafael@kernel.org, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org, nicolas.pitre@linaro.org,
vincent.guittot@linaro.org
Subject: Re: [RFC V2 2/2] sched: idle: IRQ based next prediction for idle period
Date: Wed, 20 Jan 2016 20:34:49 +0100 [thread overview]
Message-ID: <20160120193449.GV6357@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1453305636-22156-3-git-send-email-daniel.lezcano@linaro.org>
On Wed, Jan 20, 2016 at 05:00:33PM +0100, Daniel Lezcano wrote:
> + variance = stats_variance(&w->stats, mean);
> + /*
> + * We want to check the last interval is:
> + *
> + * mean - stddev < interval < mean + stddev
> + *
> + * That simplifies to:
> + *
> + * -stddev < interval - mean < stddev
> + *
> + * abs(interval - mean) < stddev
> + *
> + * The standard deviation is the sqrt of the variance:
> + *
> + * abs(interval - mean) < sqrt(variance)
> + *
> + * and we want to prevent to do an sqrt, so we square
> + * the equation:
> + *
> + * (interval - mean)^2 < variance
> + *
> + * So if the latest value of the stats complies with
> + * this condition, then the wakeup source is
> + * considered predictable and can be used to predict
> + * the next event.
> + */
> + interval = w->stats.values[w->stats.w_ptr];
> + if ((u64)((interval - mean) * (interval - mean)) > variance)
> + continue;
> +
Cute :-)
You could consider putting a simple 3 point median filter in front of
stat_add() to get rid of the worst input noise.
(I know, improving all this was a point for later)
next prev parent reply other threads:[~2016-01-20 19:34 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-06 15:22 [RFC PATCH 0/2] IRQ based next prediction Daniel Lezcano
2016-01-06 15:22 ` [RFC PATCH 1/2] irq: Add a framework to measure interrupt timings Daniel Lezcano
2016-01-08 15:31 ` Thomas Gleixner
2016-01-12 11:42 ` Daniel Lezcano
2016-01-06 15:22 ` [RFC PATCH 2/2] sched: idle: IRQ based next prediction for idle period Daniel Lezcano
2016-01-06 17:40 ` Nicolas Pitre
2016-01-07 15:42 ` Daniel Lezcano
2016-01-12 19:27 ` Nicolas Pitre
2016-01-10 22:37 ` Daniel Lezcano
2016-01-10 22:46 ` Nicolas Pitre
2016-01-10 22:58 ` Daniel Lezcano
2016-01-10 23:13 ` Nicolas Pitre
2016-01-08 15:43 ` Thomas Gleixner
2016-01-12 12:41 ` Daniel Lezcano
2016-01-12 13:42 ` Thomas Gleixner
2016-01-12 14:16 ` Daniel Lezcano
2016-01-12 14:26 ` Thomas Gleixner
2016-01-12 14:52 ` Daniel Lezcano
2016-01-12 15:12 ` Thomas Gleixner
2016-01-12 16:04 ` Daniel Lezcano
2016-01-13 9:17 ` Thomas Gleixner
2016-01-18 13:21 ` Daniel Lezcano
2016-01-20 15:41 ` Thomas Gleixner
2016-01-20 16:00 ` [RFC V2 0/2] IRQ based next prediction Daniel Lezcano
2016-01-20 16:00 ` [RFC V2 1/2] irq: Add a framework to measure interrupt timings Daniel Lezcano
2016-01-20 17:55 ` Thomas Gleixner
2016-01-21 9:25 ` Daniel Lezcano
2016-01-21 10:27 ` Thomas Gleixner
2016-01-20 19:07 ` Peter Zijlstra
2016-01-20 19:57 ` Thomas Gleixner
2016-01-20 20:04 ` Nicolas Pitre
2016-01-20 20:20 ` Peter Zijlstra
2016-01-20 20:22 ` Thomas Gleixner
2016-01-21 9:50 ` Daniel Lezcano
2016-01-21 10:08 ` Peter Zijlstra
2016-01-21 12:38 ` Daniel Lezcano
2016-01-21 20:27 ` Thomas Gleixner
2016-01-21 13:52 ` Thomas Gleixner
2016-01-21 14:19 ` Daniel Lezcano
2016-01-21 18:56 ` Thomas Gleixner
2016-01-22 10:15 ` Peter Zijlstra
2016-01-21 9:26 ` Daniel Lezcano
2016-01-20 19:28 ` Peter Zijlstra
2016-01-21 9:53 ` Daniel Lezcano
2016-01-20 16:00 ` [RFC V2 2/2] sched: idle: IRQ based next prediction for idle period Daniel Lezcano
2016-01-20 17:46 ` Nicolas Pitre
2016-01-20 18:44 ` Peter Zijlstra
2016-01-21 10:03 ` Daniel Lezcano
2016-01-20 19:02 ` Peter Zijlstra
2016-01-20 19:17 ` Nicolas Pitre
2016-01-20 19:29 ` Peter Zijlstra
2016-01-20 19:34 ` Peter Zijlstra [this message]
2016-01-20 19:40 ` Peter Zijlstra
2016-01-20 19:57 ` Nicolas Pitre
2016-01-20 20:22 ` Peter Zijlstra
2016-01-20 19:49 ` Thomas Gleixner
2016-01-21 13:54 ` Daniel Lezcano
2016-01-21 14:12 ` Thomas Gleixner
2016-01-20 16:00 ` [RFC V2 0/2] IRQ based next prediction Daniel Lezcano
2016-01-20 16:00 ` [RFC V2 1/2] irq: Add a framework to measure interrupt timings Daniel Lezcano
2016-01-20 16:00 ` [RFC V2 2/2] sched: idle: IRQ based next prediction for idle period Daniel Lezcano
2016-01-20 20:14 ` Nicolas Pitre
2016-01-21 13:04 ` Daniel Lezcano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160120193449.GV6357@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=daniel.lezcano@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nicolas.pitre@linaro.org \
--cc=rafael@kernel.org \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.