[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071126050044.GA5304@linux.vnet.ibm.com>
Date: Mon, 26 Nov 2007 10:30:44 +0530
From: Srivatsa Vaddagiri <vatsa@...ux.vnet.ibm.com>
To: Ingo Molnar <mingo@...e.hu>
Cc: dmitry.adamushko@...il.com, a.p.zijlstra@...llo.nl,
dhaval@...ux.vnet.ibm.com, linux-kernel@...r.kernel.org,
efault@....de, skumar@...ux.vnet.ibm.com,
Balbir Singh <balbir@...ibm.com>,
Dipankar <dipankar@...ibm.com>
Subject: [PATCH 0/4] sched: group scheduler related patches (V3)
Here's V3 of the group scheduler related patches, which is mainly addressing
improved fairness of cpu bandwidth allocation for task groups.
Patch 1/4 -> coding style cleanup
Patch 2/4 -> Minor group scheduling related bug fixes
Patch 3/4 (v1) -> Modifies how cpu load is calculated, such that there is zero
impact on !CONFIG_FAIR_GROUP_SCHED
Patch 3/4 (v2) -> Modifies how cpu load is calculated, such that there is a
small impact on code size (but should have NO impact on
functionality or runtime behavior) for
!CONFIG_FAIR_GROUP_SCHED case. The resulting code however is
much neater since it avoids some #ifdefs. I prefer v2.
Patch 4/4 -> Updates load balance logic to provide improved fairness for
task groups.
To have zero impact on !CONFIG_FAIR_GROUP_SCHED case, please apply the
following patches:
- Patch 1/4
- Patch 2/4
- Patch 3/4 (v1)
- Patch 4/4
I personally prefer v2 of Patch 3/4. Even though it has a minor impact
on code size for !CONFIG_FAIR_GROUP_SCHED case, the overall code is much
neater IMHO.
Impact on sched.o size:
=======================
!CONFIG_FAIR_GROUP_SCHED:
text data bss dec hex filename
36829 2766 48 39643 9adb sched.o-before-nofgs
36829 2766 48 39643 9adb sched.o-after-v1-nofgs (v1 of Patch 3/4)
36843 2766 48 39657 9ae9 sched.o-after-v2-nofgs (v2 of Patch 3/4)
CONFIG_FAIR_GROUP_SCHED:
text data bss dec hex filename
39019 3346 336 42701 a6cd sched.o-before-fgs
40303 3482 308 44093 ac3d sched.o-after-v1-fgs (v1 of Patch 3/4)
40303 3482 308 44093 ac3d sched.o-after-v2-fgs (v2 of Patch 3/4)
Changes since V2 of this patchset [1]
- Split the patches better and make them pass under checkpatch.pl
script
- Fixed compile issues under different config options and also
a suspend failure (as posted by Ingo at [2])
- Make load_balance_monitor thread run as real-time task,
so that its execution is not limited by shares allocated to
default task group (init_task_group).
- Reduced minimum shares that can be allocated to a group to 1
(from 100). Would be usefull if someone wants a task group
to get very low bandiwdth or get bandwidth only when other groups
are idle.
- Removed check for tg->last_total_load check in rebalance_shares()
(which was incorrect in V2)
Changes since V1 of this patchset [3]:
- Introduced a task_group_mutex to serialize add/removal of task groups (as
pointed by Dipankar)
Please apply if there are no major concerns.
References:
1. http://marc.info/?l=linux-kernel&m=119549585223262
2. http://lkml.org/lkml/2007/11/19/127
3. http://marc.info/?l=linux-kernel&m=119547452517055
--
Regards,
vatsa
-
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