sched: group scheduler related patches (V3)
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest4 patches 2 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | sched: code cleanupkernel/ | +3 | 0 replies | |
| 2/4 | sched: minor fixes for group schedulerkernel/ kernel/ | +28 | 0 replies | |
| 3/4 | sched: change how cpu load is calculatedkernel/ kernel/ kernel/ | +59 | 0 replies | |
| 4/4 | sched: Improve fairness of cpu bandwidth allocation for task groupsinclude/ kernel/ kernel/ +1 more | +334 | 13 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [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
Signature · 2 lines
Regards, vatsa