From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752780AbdKMMq4 (ORCPT ); Mon, 13 Nov 2017 07:46:56 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:39552 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752646AbdKMMqz (ORCPT ); Mon, 13 Nov 2017 07:46:55 -0500 X-Google-Smtp-Source: AGs4zMZlXvHWyU8WiB9qi3kjSORIUxl1uCyTkKyNSkjUXWUcLc8K9OEOVeOa5ZToCBVoJ6ljJj7hQQ== Subject: Re: [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value To: Byungchul Park , peterz@infradead.org, mingo@kernel.org, rostedt@goodmis.org Cc: linux-kernel@vger.kernel.org, juri.lelli@gmail.com, kernel-team@lge.com References: <1507617844-24348-1-git-send-email-byungchul.park@lge.com> <1507617844-24348-2-git-send-email-byungchul.park@lge.com> <20171012075727.GL3323@X58A-UD3R> From: Daniel Bristot de Oliveira Message-ID: <30b71aa6-4662-7056-1a09-a88f4143d1d1@redhat.com> Date: Mon, 13 Nov 2017 13:46:51 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171012075727.GL3323@X58A-UD3R> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/12/2017 09:57 AM, Byungchul Park wrote: > On Tue, Oct 10, 2017 at 03:44:04PM +0900, Byungchul Park wrote: >> Currently, migrating tasks to cpu0 unconditionally happens when the >> heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0). >> We have to distinguish between the empty case and cpu0 to avoid the >> unnecessary migrantions. Therefore, it has to return an invalid value s/migrantions/migrations/ ? >> e.i. -1 in that case. > > This patch does what it should obviously do. Could you check this? > >> Signed-off-by: Byungchul Park >> Acked-by: Steven Rostedt (VMware) >> --- >> kernel/sched/cpudeadline.c | 10 +++++++++- >> 1 file changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c >> index 9f02035..bcf903f 100644 >> --- a/kernel/sched/cpudeadline.c >> +++ b/kernel/sched/cpudeadline.c >> @@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, >> int best_cpu = cpudl_maximum_cpu(cp); >> WARN_ON(best_cpu != -1 && !cpu_present(best_cpu)); >> >> + /* >> + * The heap tree is empry for now, just return. s/empry/empty/ ? >> + */ >> + if (best_cpu == -1) >> + return 0; >> + >> if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) && >> dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) { >> if (later_mask) >> @@ -265,8 +271,10 @@ int cpudl_init(struct cpudl *cp) >> return -ENOMEM; >> } >> >> - for_each_possible_cpu(i) >> + for_each_possible_cpu(i) { >> + cp->elements[i].cpu = -1; >> cp->elements[i].idx = IDX_INVALID; >> + } >> >> return 0; >> } >> -- >> 1.9.1