Skip to content

Commit

Permalink
cpuidle: Rearrange code and comments in get_typical_interval()
Browse files Browse the repository at this point in the history
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 closer
to actual implementation it describes.

Signed-off-by: Tuukka Tikkanen <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
  • Loading branch information
Tuukka Tikkanen authored and rafaeljw committed Aug 22, 2013
1 parent 330647a commit 017099e
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions drivers/cpuidle/governors/menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,14 +228,6 @@ static void get_typical_interval(struct menu_device *data)
do_div(stddev, divisor);
stddev = int_sqrt(stddev);
/*
* If we have outliers to the upside in our distribution, discard
* those by setting the threshold to exclude these outliers, then
* calculate the average and standard deviation again. Once we get
* down to the bottom 3/4 of our samples, stop excluding samples.
*
* This can deal with workloads that have long pauses interspersed
* with sporadic activity with a bunch of short pauses.
*
* The typical interval is obtained when standard deviation is small
* or standard deviation is small compared to the average interval.
*
Expand All @@ -246,12 +238,22 @@ static void get_typical_interval(struct menu_device *data)
if (data->expected_us > avg)
data->predicted_us = avg;
return;

} else if ((divisor * 4) > INTERVALS * 3) {
/* Exclude the max interval */
thresh = max - 1;
goto again;
}

/*
* If we have outliers to the upside in our distribution, discard
* those by setting the threshold to exclude these outliers, then
* calculate the average and standard deviation again. Once we get
* down to the bottom 3/4 of our samples, stop excluding samples.
*
* This can deal with workloads that have long pauses interspersed
* with sporadic activity with a bunch of short pauses.
*/
if ((divisor * 4) <= INTERVALS * 3)
return;

thresh = max - 1;
goto again;
}

/**
Expand Down

0 comments on commit 017099e

Please sign in to comment.