Re: [PATCH] sched: Add logic to handle parallel try_to_wake_up() of the same task

2013-07-15 Thread Kirill Tkhai
16.07.2013, 00:19, "Peter Zijlstra" : > On Mon, Jul 15, 2013 at 06:14:34PM +0400, Kirill Tkhai wrote: >    #ifdef CONFIG_SMP   + p->state = TASK_WAKING;   + smp_wmb();   + >>>  This too is broken; the loop below needs to be completed first, >>>  otherwise we change p->state whil

Re: [PATCH] sched: Add logic to handle parallel try_to_wake_up() of the same task

2013-07-15 Thread Peter Zijlstra
On Mon, Jul 15, 2013 at 06:14:34PM +0400, Kirill Tkhai wrote: > >> > >>   #ifdef CONFIG_SMP > >>  + p->state = TASK_WAKING; > >>  + smp_wmb(); > >>  + > > > > This too is broken; the loop below needs to be completed first, > > otherwise we change p->state while the task is still on the CPU and it >

Re: [PATCH] sched: Add logic to handle parallel try_to_wake_up() of the same task

2013-07-15 Thread Kirill Tkhai
Hi, Peter, 15.07.2013, 10:32, "Peter Zijlstra" : > On Sat, Jul 13, 2013 at 07:45:49PM +0400, Kirill Tkhai wrote: > >>  --- >>   include/linux/sched.h |    1 + >>   kernel/sched/core.c   |   29 + >>   kernel/sched/debug.c  |    7 +++ >>   kernel/sched/stats.h  |   16

Re: [PATCH] sched: Add logic to handle parallel try_to_wake_up() of the same task

2013-07-14 Thread Peter Zijlstra
On Sat, Jul 13, 2013 at 07:45:49PM +0400, Kirill Tkhai wrote: > --- > include/linux/sched.h |1 + > kernel/sched/core.c | 29 + > kernel/sched/debug.c |7 +++ > kernel/sched/stats.h | 16 > 4 files changed, 49 insertions(+), 4 deleti

Re: [PATCH] sched: Add logic to handle parallel try_to_wake_up() of the same task

2013-07-13 Thread Mike Galbraith
On Sat, 2013-07-13 at 19:45 +0400, Kirill Tkhai wrote: > This patch adds optimization of try_to_wake_up() function > for cases when the system is doing parallel wake_up > of the same task on the different cpus. Also it adds > accounting the statistics of these situations. > > We check the status