Re: [RFC v4 PATCH 6/7] sched: Rebalance cfs runtimes

From: Bharata B Rao
Date: Sat Dec 05 2009 - 08:08:49 EST


On Fri, Dec 04, 2009 at 05:09:58PM +0100, Peter Zijlstra wrote:
> On Tue, 2009-11-17 at 20:07 +0530, Bharata B Rao wrote:
> > sched: CFS runtime borrowing
> >
> > From: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx>
> >
> > Before throttling a group, try to borrow runtime from groups that have excess.
> >
> > To start with, a group will get equal runtime on every cpu. If the group doesn't
> > have tasks on all cpus, it might get throttled on some cpus while it still has
> > runtime left on other cpus where it doesn't have any tasks to consume that
> > runtime. Hence there is a chance to borrow runtimes from such cpus/cfs_rqs to
> > cpus/cfs_rqs where it is required.
> >
> > CHECK: RT seems to be handling runtime initialization/reclaim during hotplug
> > from multiple places (migration_call, update_runtime). Need to check if CFS
> > also needs to do the same.
> >
> > Signed-off-by: Kamalesh Babulal <kamalesh@xxxxxxxxxxxxxxxxxx>
> > ---
> > kernel/sched.c | 26 ++++++++
> > kernel/sched_fair.c | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++
> > kernel/sched_rt.c | 26 +-------
> > 3 files changed, 202 insertions(+), 22 deletions(-)
>
> I think that if we unify the se/rq bandwidth structures a lot of copy
> and paste can be avoided, resulting in an over-all much easier to
> maintain code-base.

As you note here and also in reply to 2/7, I could definetely unify some
of the bandwidth handling code b/n rt and cfs. In fact I already have patches
from Dhaval for this. I was holding them back till now since I wanted to
show how cfs hard limits looks like and what changes it involves and get
review feedback on them. As I have said in my earlier posts, I will eventually
merge code with rt. I shall do this starting from next post.

Regards,
Bharata.
--
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/