lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 25 Mar 2009 14:43:30 +0530
From:	Gautham R Shenoy <ego@...ibm.com>
To:	"Ingo Molnar" <mingo@...e.hu>,
	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	"Vaidyanathan Srinivasan" <svaidy@...ux.vnet.ibm.com>
Cc:	linux-kernel@...r.kernel.org,
	Suresh Siddha <suresh.b.siddha@...el.com>,
	"Balbir Singh" <balbir@...ibm.com>,
	Nick Piggin <nickpiggin@...oo.com.au>,
	"Dhaval Giani" <dhaval@...ux.vnet.ibm.com>,
	Bharata B Rao <bharata@...ux.vnet.ibm.com>
Subject: [RFC PATCH 00/11] sched: find_busiest_group() cleanup

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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ