[lkml]   [2009]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[RFC PATCH 00/11] sched: find_busiest_group() cleanup

This patchset contains the cleanup of the humongous find_busiest_group()

Vaidy had tried a hand at this before. His approach can be
found here: and

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

- 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


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

 \ /
  Last update: 2009-03-25 10:17    [W:0.135 / U:31.244 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site