From: Juri Lelli <juri.lelli@gmail.com>
To: Hillf Danton <dhillf@gmail.com>
Cc: peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com,
rostedt@goodmis.org, oleg@redhat.com, fweisbec@gmail.com,
darren@dvhart.com, johan.eker@ericsson.com, p.faure@akatech.ch,
linux-kernel@vger.kernel.org, claudio@evidence.eu.com,
michael@amarulasolutions.com,
Fabio Checconi <fchecconi@gmail.com>,
Tommaso Cucinotta <tommaso.cucinotta@sssup.it>,
Juri Lelli <juri.lelli@gmail.com>,
Nicola Manica <nicola.manica@disi.unitn.it>,
Luca Abeni <luca.abeni@unitn.it>,
Dhaval Giani <dhaval.giani@gmail.com>,
hgu1972@gmail.com, paulmck@linux.vnet.ibm.com,
Dario Faggioli <raistlin@linux.it>,
Insop Song <insop.song@ericsson.com>,
liming.wang@windriver.com
Subject: Re: [PATCH 06/16] sched: SCHED_DEADLINE push and pull logic
Date: Sun, 08 Apr 2012 22:20:01 +0200 [thread overview]
Message-ID: <4F81F2F1.8010105@gmail.com> (raw)
In-Reply-To: <CAJd=RBC13JUuX0gtQidpNc=T+pnPgtKVQwRsP-mPQeiyfd9fPA@mail.gmail.com>
On 04/07/2012 04:32 AM, Hillf Danton wrote:
> On Sat, Apr 7, 2012 at 1:31 AM, Juri Lelli<juri.lelli@gmail.com> wrote:
>>>>
>>>> kernel/sched_dl.c | 912
>>>> kernel/sched_rt.c | 2 +-
>
> You are working on 2.6.3x, x<= 8 ?
> If so, what is the reason(just curious)?
> Already planned to add in 3.3 and above?
>
Dario answered on this :-).
>>>> + if (!dl_entity_preempt(&entry->dl,&p->dl))
>>>
>>> if (dl_entity_preempt(&p->dl,&entry->dl))
>>>
>>
>> Any specific reason to reverse the condition?
>>
> Just for easing readers.
>
Ok, reasonable. Here and below.
>>>> +select_task_rq_dl(struct task_struct *p, int sd_flag, int flags)
>>>> +{
>>>> + struct task_struct *curr;
>>>> + struct rq *rq;
>>>> + int cpu;
>>>> +
>>>> + if (sd_flag != SD_BALANCE_WAKE)
>>>
>>> why is task_cpu(p) not eligible?
>>>
>>
>> Right, I'll change this.
>>
> No, you will first IMO sort out clear answer to the question.
>
task_cpu(p) is eligible and will be returned if sd_flag != SD_BALANCE_WAKE
&& sd_flag != SD_BALANCE_FORK as in sched_rt. I changed the code accordingly.
>>>> + (rq->curr->dl.nr_cpus_allowed< 2 ||
>>>> + dl_entity_preempt(&rq->curr->dl,&p->dl))&&
>>>
>>> !dl_entity_preempt(&p->dl,&rq->curr->dl))&&
>>
>> As above?
>>
> Just for easing reader.
>
>>>> +#ifdef CONFIG_SMP
>>>> + /*
>>>> + * In the unlikely case current and p have the same deadline
>>>> + * let us try to decide what's the best thing to do...
>>>> + */
>>>> + if ((s64)(p->dl.deadline - rq->curr->dl.deadline) == 0&&
>>>> + !need_resched())
>>>
>>> please recheck !need_resched(), say rq->curr need reschedule?
>>
>> Sorry, I don't get this..
>>
> Perhaps smp_processor_id() != rq->cpu
>
need_resched is actually checked...
>>>
>>> if (task_running(rq, p))
>>> return 0;
>>> return cpumask_test_cpu(cpu,&p->cpus_allowed);
>>
>> We use this inside pull_dl_task. Since we are searching for a task to
>> pull, you must be sure that the found task can actually migrate checking
>> nr_cpus_allowed> 1.
>>
> If cpu is certainly allowed for task to run, but nr_cpus_allowed is no more
> than one, which is corrupted?
>
>>
>> Well, ok with this and above. Anyway this code is completely removed in
>> 15/16.
>>
> Yup, another reason for monolith.
>
Monolithic is below. Anyway, please check the github repo for bug
fixes/new features. ;-)
>>>> +
>>>> +static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask_dl);
>>>> +
>>>> +static int find_later_rq(struct task_struct *task)
>>>> +{
>>>> + struct sched_domain *sd;
>>>> + struct cpumask *later_mask = __get_cpu_var(local_cpu_mask_dl);
>>>
>>> please check is local_cpu_mask_dl valid
>>>
>>
>> Could you explain more why should I check for validity?
>>
> Only for the case that something comes in before it is initialized,
> IIRC encountered by Steven.
>
Do you mean at kernel_init time?
Could you be more precise about the problem Steven encountered?
>>
>> Ok, I'll prepare the monolithic patch and probably store it somewhere so
>> that it can be downloaded also by others.
>>
> Info Hillf once it is ready, thanks.
>
Here we go:
https://github.com/downloads/jlelli/sched-deadline/sched-dl-V4.patch
I noticed that the Cc list is changed... something went wrong?
Anyway, I restored it to the original one. :-)
Thanks and Regards,
- Juri
next prev parent reply other threads:[~2012-04-08 20:20 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-06 7:14 [RFC][PATCH 00/16] sched: SCHED_DEADLINE v4 Juri Lelli
2012-04-06 7:14 ` [PATCH 01/16] sched: add sched_class->task_dead Juri Lelli
2012-04-08 17:49 ` Oleg Nesterov
2012-04-08 18:09 ` Juri Lelli
2012-04-06 7:14 ` [PATCH 02/16] sched: add extended scheduling interface Juri Lelli
2012-04-06 7:14 ` [PATCH 03/16] sched: SCHED_DEADLINE data structures Juri Lelli
2012-04-23 9:08 ` Peter Zijlstra
2012-04-23 9:47 ` Juri Lelli
2012-04-23 9:49 ` Peter Zijlstra
2012-04-23 9:55 ` Juri Lelli
2012-04-23 10:12 ` Peter Zijlstra
2012-04-23 9:13 ` Peter Zijlstra
2012-04-23 9:28 ` Juri Lelli
2012-04-23 9:30 ` Peter Zijlstra
2012-04-23 9:36 ` Juri Lelli
2012-04-23 9:39 ` Peter Zijlstra
2012-04-23 9:34 ` Peter Zijlstra
2012-04-23 10:16 ` Juri Lelli
2012-04-23 10:28 ` Peter Zijlstra
2012-04-23 10:33 ` Juri Lelli
2012-04-06 7:14 ` [PATCH 04/16] sched: SCHED_DEADLINE SMP-related " Juri Lelli
2012-04-06 7:14 ` [PATCH 05/16] sched: SCHED_DEADLINE policy implementation Juri Lelli
2012-04-11 3:06 ` Steven Rostedt
2012-04-11 6:54 ` Juri Lelli
2012-04-11 13:41 ` Steven Rostedt
2012-04-11 13:55 ` Juri Lelli
2012-04-23 10:15 ` Peter Zijlstra
2012-04-23 10:18 ` Juri Lelli
2012-04-23 10:31 ` Peter Zijlstra
2012-04-23 10:37 ` Juri Lelli
2012-04-23 21:25 ` Tommaso Cucinotta
2012-04-23 21:45 ` Peter Zijlstra
2012-04-23 23:25 ` Tommaso Cucinotta
2012-04-24 6:29 ` Dario Faggioli
2012-04-24 6:52 ` Juri Lelli
2012-04-23 11:32 ` Peter Zijlstra
2012-04-23 12:13 ` Juri Lelli
2012-04-23 12:22 ` Peter Zijlstra
2012-04-23 13:37 ` Juri Lelli
2012-04-23 14:01 ` Peter Zijlstra
2012-04-23 11:34 ` Peter Zijlstra
2012-04-23 11:57 ` Juri Lelli
2012-04-23 11:55 ` Peter Zijlstra
2012-04-23 14:43 ` Juri Lelli
2012-04-23 15:11 ` Peter Zijlstra
2012-04-23 21:55 ` Tommaso Cucinotta
2012-04-23 21:58 ` Peter Zijlstra
2012-04-23 23:21 ` Tommaso Cucinotta
2012-04-24 9:50 ` Peter Zijlstra
2012-04-24 1:03 ` Steven Rostedt
2012-04-23 14:11 ` Peter Zijlstra
2012-04-23 14:25 ` Peter Zijlstra
2012-04-23 15:34 ` Juri Lelli
2012-04-23 14:35 ` Peter Zijlstra
2012-04-23 15:39 ` Juri Lelli
2012-04-23 15:43 ` Peter Zijlstra
2012-04-23 16:41 ` Juri Lelli
[not found] ` <4F95D41F.5060700@sssup.it>
2012-04-24 7:21 ` Juri Lelli
2012-04-24 9:00 ` Peter Zijlstra
2012-05-15 10:10 ` Juri Lelli
2012-04-23 15:15 ` Peter Zijlstra
2012-04-23 15:37 ` Juri Lelli
2012-04-06 7:14 ` [PATCH 06/16] sched: SCHED_DEADLINE push and pull logic Juri Lelli
2012-04-06 13:39 ` Hillf Danton
2012-04-06 17:31 ` Juri Lelli
2012-04-07 2:32 ` Hillf Danton
2012-04-07 7:46 ` Dario Faggioli
2012-04-08 20:20 ` Juri Lelli [this message]
2012-04-09 12:28 ` Hillf Danton
2012-04-10 8:11 ` Juri Lelli
2012-04-11 15:57 ` Steven Rostedt
2012-04-11 16:00 ` Steven Rostedt
2012-04-11 16:09 ` Juri Lelli
2012-04-11 14:10 ` Steven Rostedt
2012-04-12 12:28 ` Hillf Danton
2012-04-12 12:51 ` Steven Rostedt
2012-04-12 12:56 ` Hillf Danton
2012-04-12 13:35 ` Steven Rostedt
2012-04-12 13:41 ` Hillf Danton
2012-04-11 16:07 ` Steven Rostedt
2012-04-11 16:11 ` Juri Lelli
2012-04-11 16:14 ` Steven Rostedt
2012-04-19 13:44 ` Juri Lelli
2012-04-11 16:21 ` Steven Rostedt
2012-04-11 16:24 ` Juri Lelli
2012-04-11 16:33 ` Steven Rostedt
2012-04-24 13:15 ` Peter Zijlstra
2012-04-24 18:50 ` Steven Rostedt
2012-04-24 18:53 ` Peter Zijlstra
2012-04-24 19:01 ` Steven Rostedt
2012-04-11 17:25 ` Steven Rostedt
2012-04-11 17:48 ` Juri Lelli
2012-04-06 7:14 ` [PATCH 07/16] sched: SCHED_DEADLINE avg_update accounting Juri Lelli
2012-04-06 7:14 ` [PATCH 08/16] sched: add period support for -deadline tasks Juri Lelli
2012-04-11 20:32 ` Steven Rostedt
2012-04-11 21:56 ` Juri Lelli
2012-04-11 22:13 ` Tommaso Cucinotta
2012-04-12 0:19 ` Steven Rostedt
2012-04-12 6:39 ` Luca Abeni
2012-04-06 7:14 ` [PATCH 09/16] sched: add schedstats " Juri Lelli
2012-04-06 7:14 ` [PATCH 10/16] sched: add resource limits " Juri Lelli
2012-04-24 15:07 ` Peter Zijlstra
2012-04-24 15:22 ` Juri Lelli
2012-04-24 16:27 ` Peter Zijlstra
2012-04-24 17:14 ` Juri Lelli
2012-04-06 7:14 ` [PATCH 11/16] sched: add latency tracing " Juri Lelli
2012-04-11 21:03 ` Steven Rostedt
2012-04-12 7:16 ` Juri Lelli
2012-04-16 15:51 ` Daniel Vacek
2012-04-16 19:56 ` Steven Rostedt
2012-04-16 21:31 ` Daniel Vacek
2012-04-06 7:14 ` [PATCH 12/16] rtmutex: turn the plist into an rb-tree Juri Lelli
2012-04-11 21:11 ` Steven Rostedt
2012-04-22 14:28 ` Juri Lelli
2012-04-23 8:33 ` Peter Zijlstra
2012-04-23 11:37 ` Steven Rostedt
2012-04-06 7:14 ` [PATCH 13/16] sched: drafted deadline inheritance logic Juri Lelli
2012-04-12 2:42 ` Steven Rostedt
2012-04-22 14:04 ` Juri Lelli
2012-04-23 8:39 ` Peter Zijlstra
2012-04-06 7:14 ` [PATCH 14/16] sched: add bandwidth management for sched_dl Juri Lelli
2012-04-06 7:14 ` [PATCH 15/16] sched: speed up -dl pushes with a push-heap Juri Lelli
2012-04-06 7:14 ` [PATCH 16/16] sched: add sched_dl documentation Juri Lelli
2012-04-06 8:25 ` [RFC][PATCH 00/16] sched: SCHED_DEADLINE v4 Luca Abeni
2012-04-07 9:25 ` Tadeus Prastowo
2012-04-06 11:07 ` Dario Faggioli
2012-04-07 7:52 ` Juri Lelli
2012-04-11 14:17 ` [RFC][PATCH 00/16] sched: " Steven Rostedt
2012-04-11 14:28 ` Juri Lelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F81F2F1.8010105@gmail.com \
--to=juri.lelli@gmail.com \
--cc=claudio@evidence.eu.com \
--cc=darren@dvhart.com \
--cc=dhaval.giani@gmail.com \
--cc=dhillf@gmail.com \
--cc=fchecconi@gmail.com \
--cc=fweisbec@gmail.com \
--cc=hgu1972@gmail.com \
--cc=insop.song@ericsson.com \
--cc=johan.eker@ericsson.com \
--cc=liming.wang@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luca.abeni@unitn.it \
--cc=michael@amarulasolutions.com \
--cc=mingo@redhat.com \
--cc=nicola.manica@disi.unitn.it \
--cc=oleg@redhat.com \
--cc=p.faure@akatech.ch \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=raistlin@linux.it \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tommaso.cucinotta@sssup.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.