[RFC PATCH 00/11] sched: find_busiest_group() cleanup

From: Gautham R Shenoy
Date: Wed Mar 25 2009 - 05:15:15 EST


Hi,

This patchset contains the cleanup of the humongous find_busiest_group()
function.

Vaidy had tried a hand at this before. His approach can be
found here:
http://lkml.org/lkml/2008/9/24/201 and
http://lkml.org/lkml/2008/10/9/176

Though the code in this patchset has been written from scratch I have
reused some of the ideas that Vaidy had originally proposed.
Credit has been given whereever it is due :)

The patches in this series are incremental. Each one is a functional patch,
which compiles fine.

The steps followed in the cleanup are as follows:
- Fix indentations.

- Group variables that serve a common high-level purpose into a single
structure.

- Use helper functions to perform all the calculatations, like calculating
the sched_domain and sched_group statistics, calculating the imbalance, etc.

- Move the power_savings_balance part, which depends on
(CONFIG_SCHED_MC || CONFIG_SCHED_SMT) into a different section, thereby
eliminating the #ifdef jungle in helper functions.

- Add /** style comments for all the functions, including find_busiest_group()

- Add additional comments whereever appropriate.

After applying all the patches, the size of find_busiest_group() goes down
from 313 lines to 76 lines. Of course, there are the helpers, but effort
has been put to keep all the helper functions within the 80 line limit.

Any feedback on the patches and how the functionality can be tested is greatly
appreciated.

---

Gautham R Shenoy (11):
sched: Add comments to find_busiest_group() function.
sched: Refactor the power savings balance code.
sched: Optimize the !power_savings_balance during find_busiest_group.
sched: Create a helper function to calculate imbalance.
sched: Create helper to calculate small_imbalance in find_busiest_group.
sched: Create a helper function to calculate sched_domain stats for fbg()
sched: Define structure to store the sched_domain statistics for fbg()
sched: Create a helper function to calculate sched_group stats for fbg()
sched: Define structure to store the sched_group statistics for fbg()
sched: Fix indentations in find_busiest_group using gotos.
sched: Simple helper functions for find_busiest_group()


kernel/sched.c | 765 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 515 insertions(+), 250 deletions(-)

--
Thanks and Regards
gautham.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/