Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-21 Thread Peter Zijlstra
Like this then? :-) --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5056,10 +5019,25 @@ static int sched_cpu_inactive(struct not switch (action & ~CPU_TASKS_FROZEN) { case CPU_DOWN_PREPARE: set_cpu_active((long)hcpu, false); + + /* explicitly

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-21 Thread Peter Zijlstra
On Fri, Dec 20, 2013 at 06:29:46PM -0500, Steven Rostedt wrote: > On Fri, 20 Dec 2013 22:44:13 +0100 > Peter Zijlstra wrote: > > > > @@ -5056,10 +5018,28 @@ static int sched_cpu_inactive(struct not > > switch (action & ~CPU_TASKS_FROZEN) { > > case CPU_DOWN_PREPARE: > > set_c

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Steven Rostedt
On Fri, 20 Dec 2013 22:44:13 +0100 Peter Zijlstra wrote: > @@ -5056,10 +5018,28 @@ static int sched_cpu_inactive(struct not > switch (action & ~CPU_TASKS_FROZEN) { > case CPU_DOWN_PREPARE: > set_cpu_active((long)hcpu, false); > - return NOTIFY_OK; > - de

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Peter Zijlstra
On Fri, Dec 20, 2013 at 01:23:23PM -0500, Steven Rostedt wrote: > I'm saying what stops this? oh duh, yes. So the below is a bit cumbersome in having to use rd->span & cpu_active_mask because it appears rd->online is too late again. So I think this will avoid the problem by being consistent with

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Steven Rostedt
On Fri, 20 Dec 2013 13:23:23 -0500 Steven Rostedt wrote: > > CPU 0 CPU 1 > - - > sched_setattr() > dl_overflow() > cpus = __dl_span_weight() > > cpu_down() > raw_spin_lock() > raw_spin_lo

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Steven Rostedt
On Fri, 20 Dec 2013 18:42:00 +0100 Peter Zijlstra wrote: > On Fri, Dec 20, 2013 at 12:37:07PM -0500, Steven Rostedt wrote: > > On Fri, 20 Dec 2013 18:13:43 +0100 > > Peter Zijlstra wrote: > > > > > > > @@ -4985,6 +4942,23 @@ migration_call(struct notifier_block *nf > > > unsigned long flags;

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Peter Zijlstra
On Fri, Dec 20, 2013 at 12:37:07PM -0500, Steven Rostedt wrote: > On Fri, 20 Dec 2013 18:13:43 +0100 > Peter Zijlstra wrote: > > > > @@ -4985,6 +4942,23 @@ migration_call(struct notifier_block *nf > > unsigned long flags; > > struct rq *rq = cpu_rq(cpu); > > > > + switch (action) { >

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Steven Rostedt
On Fri, 20 Dec 2013 18:13:43 +0100 Peter Zijlstra wrote: > @@ -4985,6 +4942,23 @@ migration_call(struct notifier_block *nf > unsigned long flags; > struct rq *rq = cpu_rq(cpu); > > + switch (action) { > + case CPU_DOWN_PREPARE: /* explicitly allow suspend */ > +

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-20 Thread Peter Zijlstra
On Wed, Dec 18, 2013 at 05:55:08PM +0100, Peter Zijlstra wrote: > If the purpose is to fail hotplug because taking out the CPU would end > up in over-subscription, then we need a DOWN_PREPARE handler. Juri just said (on IRC) that that was indeed the intended purpose. --- Subject: sched, deadline

Re: [PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-18 Thread Peter Zijlstra
On Tue, Dec 17, 2013 at 01:27:29PM +0100, Peter Zijlstra wrote: > @@ -4381,6 +4592,13 @@ static int __migrate_task(struct task_st > goto fail; > > /* > + * If p is -deadline, proceed only if there is enough > + * bandwidth available on dest_cpu > + */ > + if

[PATCH 09/13] sched: Add bandwidth management for sched_dl

2013-12-17 Thread Peter Zijlstra
From: Dario Faggioli In order of -deadline scheduling to be effective and useful, it is important that some method of having the allocation of the available CPU bandwidth to tasks and task groups under control. This is usually called "admission control" and if it is not performed at all, no guara