All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <kernellwp@gmail.com>
To: Juri Lelli <juri.lelli@arm.com>,
	Wanpeng Li <wanpeng.li@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>
Cc: Kirill Tkhai <ktkhai@parallels.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"juri.lelli@gmail.com" <juri.lelli@gmail.com>
Subject: Re: [PATCH 2/2] sched/deadline: fix start high-res preemption tick for a non-running task
Date: Mon, 17 Nov 2014 19:02:10 +0800	[thread overview]
Message-ID: <5469D5B2.8040009@gmail.com> (raw)
In-Reply-To: <5469C503.9010007@arm.com>

Hi Juri,
On 11/17/14, 5:50 PM, Juri Lelli wrote:
> Hi,
>
> On 13/11/14 10:30, Wanpeng Li wrote:
>> Hi Juri,
>> On 11/13/14, 5:37 PM, Juri Lelli wrote:
>>> Hi,
>>>
>>> not sure I understand what the problem is here.
>>>
>>> On 11/11/14 01:52, Wanpeng Li wrote:
>>>> Queued ticks are scheduled to match the budget, which means the budget
>>>> is overall consumed and the dl task should be throttled.
>>> ... enforce the budget? It means that when the budget is consumed the
>>> task has to be throttled...
>> Agreed.
>>
>>>> Dl task will
>>>> be replenished immediately if fail to start a dl timer.
>>>>
>>>> However, the curr maybe not the left most dl task in the rb tree any
>>>> more after this immediately replenished and reschedule is needed.
>>>> Start high-res preemption tick for this upcoming rescheduled dl task
>>>> is not correct.
>>>>
>>> So, the task that is going to preempt curr is picked by
>>> pick_next_task_dl(), that correctly starts the hrtick for this new task.
>>>
>>> Maybe you can add more information about what you are seeing? A callpath
>>> maybe?
>> The parameter of task_tick_dl() queued == 1 means that hrtick is fired.
>> hrtick() => task_tick_dl( , ,1), so p->dl.runtime should be <= 0 if
>> queued == 1. What I see is queued == 1 && p->dl.runtime > 0 && p is not
>> the left most task and hrtick is start for this task.
>>
> Oh, right, now it makes sense. Good catch! :)
>
> Could you please post a second version with a more explanatory changelog
> and maybe a comment just above the check?

Ok, I will do it and send out a new version tomorrow. ;-) Btw, could you 
review this patch? https://lkml.org/lkml/2014/11/13/51 The bug is 
introduced by deadline.

Regards,
Wanpeng Li

>   
> Thanks,
>
> - Juri
>
>> Regards,
>> Wanpeng Li
>>
>>> Thanks,
>>>
>>> - Juri
>>>
>>>> This patch fix it by not starting high-res preemption tick for a
>>>> non-running dl task.
>>>>
>>>> Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
>>>> ---
>>>>    kernel/sched/deadline.c | 3 ++-
>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>>>> index 56674f6..2a6a5bb 100644
>>>> --- a/kernel/sched/deadline.c
>>>> +++ b/kernel/sched/deadline.c
>>>> @@ -1090,7 +1090,8 @@ static void task_tick_dl(struct rq *rq, struct task_struct *p, int queued)
>>>>    {
>>>>    	update_curr_dl(rq);
>>>>    
>>>> -	if (hrtick_enabled(rq) && queued && p->dl.runtime > 0)
>>>> +	if (hrtick_enabled(rq) && queued && p->dl.runtime > 0 &&
>>>> +	    is_leftmost(p, &rq->dl))
>>>>    		start_hrtick_dl(rq, p);
>>>>    }
>>>>    
>>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> Please read the FAQ at  http://www.tux.org/lkml/
>>


  reply	other threads:[~2014-11-17 11:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-11  1:52 [PATCH 1/2] sched/deadline: introduce start_hrtick_dl for !CONFIG_SCHED_HRTICK Wanpeng Li
2014-11-11  1:52 ` [PATCH 2/2] sched/deadline: fix start high-res preemption tick for a non-running task Wanpeng Li
2014-11-13  9:37   ` Juri Lelli
2014-11-13 10:30     ` Wanpeng Li
2014-11-17  9:50       ` Juri Lelli
2014-11-17 11:02         ` Wanpeng Li [this message]
2014-11-13  9:31 ` [PATCH 1/2] sched/deadline: introduce start_hrtick_dl for !CONFIG_SCHED_HRTICK Juri Lelli
2014-11-16 12:33 ` [tip:sched/core] sched/deadline: Introduce start_hrtick_dl() " tip-bot for Wanpeng Li

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=5469D5B2.8040009@gmail.com \
    --to=kernellwp@gmail.com \
    --cc=juri.lelli@arm.com \
    --cc=juri.lelli@gmail.com \
    --cc=ktkhai@parallels.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=wanpeng.li@linux.intel.com \
    /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.