lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 13 Nov 2017 13:46:51 +0100
From:   Daniel Bristot de Oliveira <bristot@...hat.com>
To:     Byungchul Park <byungchul.park@....com>, peterz@...radead.org,
        mingo@...nel.org, rostedt@...dmis.org
Cc:     linux-kernel@...r.kernel.org, juri.lelli@...il.com,
        kernel-team@....com
Subject: Re: [RESEND PATCH v2 2/2] sched/deadline: Initialize
 cp->elements[].cpu to an invalid value

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 <byungchul.park@....com>
>> Acked-by: Steven Rostedt (VMware) <rostedt@...dmis.org>
>> ---
>>  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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ