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] [day] [month] [year] [list]
Date:	Tue, 8 May 2012 19:03:06 +0530
From:	Sasikanth babu <sasikanth.v19@...il.com>
To:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc:	Ingo Molnar <mingo@...nel.org>,
	Frank Rowand <frank.rowand@...sony.com>,
	Paul Turner <pjt@...gle.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] sched: Removed redundant set_current_state in "yield"

On Mon, May 7, 2012 at 6:43 PM, Peter Zijlstra <a.p.zijlstra@...llo.nl> wrote:
> On Tue, 2012-04-10 at 21:15 +0530, Sasikantha babu wrote:
>> Removed redundant setting current task state to TASK_RUNNING.
>>
>> During yield process will always remains in TASK_RUNNING state.
>
> Uhm, no, if you call yield() with !TASK_RUNNING you'll block and need a
> proper wakeup. That is, you can in fact abuse yield() as schedule().
With the current code even if we call yield with !TASK_RUNNING, we are
setting it
back to TASK_RUNNING in yield. is this the expected behavior?.

void __sched yield(void)
 {
        set_current_state(TASK_RUNNING);
        sys_sched_yield();
 }

In the code I could not find yield was called with  !TASK_RUNNING.
>
>> Process state of  yielded process will not change from TASK_RUNNING, so it does not
>> make sense setting the process state again to TASK_RUNNING (TASK_RUNNING -> TASK_RUNNING).
>
> No real objections, but have you tested/verified that all users are
> indeed unaffected by this change?
 I did minimal testing on changes (Could not able to test all
scenarios, suggest me if there is anyway to test all cases) and
 verified none of the code path is going affected by this change.
>
>> Signed-off-by: Sasikantha babu <sasikanth.v19@...il.com>
>> ---
>>  kernel/sched/core.c |    1 -
>>  1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
>> index 4603b9d..c2a357d 100644
>> --- a/kernel/sched/core.c
>> +++ b/kernel/sched/core.c
>> @@ -4624,7 +4624,6 @@ EXPORT_SYMBOL(__cond_resched_softirq);
>>   */
>>  void __sched yield(void)
>>  {
>> -     set_current_state(TASK_RUNNING);
>>       sys_sched_yield();
>>  }
>>  EXPORT_SYMBOL(yield);
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ