* etc), we actually want to start out with a unity factor.
> +*/
> + for(i = 0; i < BUCKETS; i++)
> + data->correction_factor[i] = RESOLUTION * DECAY;
> +
> return 0;
> }
>
> --
> 1.7.9.5
>
Reviewed-by: Tuukka Tikkanen
Hi,
On 6 March 2014 09:41, Len Brown wrote:
>
> On Mon, Feb 24, 2014 at 1:29 AM, Tuukka Tikkanen
> wrote:
> > Sometimes (fairly often) when the cpuidle menu governor is making a decision
> > about idle state to enter the next timer for the cpu appears to expire in
&
On 25 February 2014 12:56, Daniel Lezcano wrote:
> On 02/24/2014 07:29 AM, Tuukka Tikkanen wrote:
>>
>> For some platforms, a poll state is inserted in the cpuidle driver states.
>> The flags for the state do not indicate that timekeeping is not affected.
>> As the
-off-by: Tuukka Tikkanen
---
drivers/cpuidle/driver.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
index 06dbe7c..136d6a2 100644
--- a/drivers/cpuidle/driver.c
+++ b/drivers/cpuidle/driver.c
@@ -209,7 +209,7 @@ static
coefficients are updated with measured idle durations exceeding
timer length, the multiplier may reach values exceeding unity (i.e.
the stored numerator exceeds RESOLUTION*DECAY). This patch ensures that
the multipliers are updated with durations capped to timer length.
Signed-off-by: Tuukka Tikkanen
all will
eventually return to the framework. The redundant time measurement could
be removed, unless there is some obscure way of getting called on some
platform that I am unable to figure out.)
Tuukka Tikkanen (7):
Cpuidle: rename expected_us to next_timer_us in menu governor
Cpuidle: Use actual state
n,
the minor performance hit allows making a generic sleep state selection
function based on (sleep duration, maximum latency) tuple.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/driver
entered state information is available,
so we can use that to obtain the real exit latency.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c |7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors
wakeup source being active.
This patch renames expected_us to next_timer_us in order to better
reflect the contained information.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers
clarifies the
associated comment. It also removes one intermediate variable that
serves no purpose.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c | 44 ++
1 file changed, 26 insertions(+), 18 deletions(-)
diff --git a/drivers/cpuidle
see if
the state 0 has been disabled or not.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c | 10 +-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index 71b5232..c414468 100644
--- a
From: Tuukka Tikkanen
The menu governor uses a static function get_typical_interval() to
try to detect a repeating pattern of wakeups. The previous interval
durations are stored as an array of unsigned ints, but the arithmetic
in the function is performed exclusively as 64 bit values, even when
From: Tuukka Tikkanen
Field predicted_us value can never exceed expected_us value, but it has
a potentially larger type. As there is no need for additional 32 bits of
zeroes on 32 bit plaforms, change the type of predicted_us to match the
type of expected_us.
Field correction_factor is used to
From: Tuukka Tikkanen
Struct menu_device member intervals is declared as u32, but the value
stored is (unsigned) int. The type is changed to match the value being
stored.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c |2 +-
1 file changed, 1 insertion(+), 1 deletion
From: Tuukka Tikkanen
The function get_typical_interval() initializes a number of variables
that are immediately after declarations assigned constant values.
In addition, there are multiple assignments on a single line, which
is explicitly forbidden by Documentation/CodingStyle.
This patch
From: Tuukka Tikkanen
This series of patches fixes some bugs, style issues and wild use of
variable types in cpuidle menu governor. One of the bugs is a logic
flaw where a detected previously recurring pattern is given priority
over known guaranteed earlier wakeup. The others involve value
From: Tuukka Tikkanen
This patch prevents cpuidle menu governor from using repeating interval
prediction result if the idle period predicted is longer than the one
allowed by shortest running timer.
Signed-off-by: Tuukka Tikkanen
---
drivers/cpuidle/governors/menu.c |5 -
1 file
From: Tuukka Tikkanen
This patch rearranges a if-return-elsif-goto-fi-return sequence into
if-return-fi-if-return-fi-goto sequence. The functionality remains the
same. Also, a lengthy comment that did not describe the functionality
in the order it occurs is split into half and top half is moved
From: Tuukka Tikkanen
get_typical_interval() uses int_sqrt() in calculation of standard
deviation. The formal parameter of int_sqrt() is unsigned long, which
may on some platforms be smaller than the 64 bit unsigned integer used
as the actual parameter. The overflow can occur frequently when
From: Tuukka Tikkanen
The menu governor has a number of tunable constants that may be changed
in the source. If certain combination of values are chosen, an overflow
is possible when the correction_factor is being recalculated.
This patch adds a warning regarding this possibility and describes
20 matches
Mail list logo