From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752147AbcGADgT (ORCPT ); Thu, 30 Jun 2016 23:36:19 -0400 Received: from m50-135.163.com ([123.125.50.135]:38612 "EHLO m50-135.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751924AbcGADgR (ORCPT ); Thu, 30 Jun 2016 23:36:17 -0400 X-Greylist: delayed 943 seconds by postgrey-1.27 at vger.kernel.org; Thu, 30 Jun 2016 23:35:49 EDT Date: Fri, 1 Jul 2016 11:08:01 +0800 From: "T.Zhou" To: peterz@infradead.org Cc: mingo@redhat.com, linux-kernel@vger.kernel.org Subject: [PATCH] sched: Assign !p->on_cpu to the second parameter of smp_cond_load_acquire() Message-ID: <20160701030801.GA15593@root> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-CM-TRANSID: D9GowADnWe8V4XVXmXb+BA--.65269S3 X-Coremail-Antispam: 1Uf129KBjvdXoW7Wr1fXF43KF4UZFWrKw43trb_yoWfCwb_Zw 1rCF40qF1qqFW29r15WaySqa4Iq34YkFyF9w48WayUAryUtwsxXrn5ZF97WrnxXrn5Zr9r GFn3WF4DAr1UujkaLaAFLSUrUUUUbb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUehID3UUUUU== X-Originating-IP: [221.194.160.83] X-CM-SenderInfo: vwr2x0rx6rljoofrz/1tbiXRaZllWBSDZMLAAAsO Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The second parameter of smp_cond_load_acquire() should be !p->on_cpu cause remote wakeup need to ensure that: if the task is running on prev cpu, it should be descheduled before doing the actual wakeup. Signed-off-by: T.Zhou --- kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3387e4f..8e6fef6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2047,7 +2047,7 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) * This ensures that tasks getting woken will be fully ordered against * their previous state and preserve Program Order. */ - smp_cond_load_acquire(&p->on_cpu, !VAL); + smp_cond_load_acquire(&p->on_cpu, !p->on_cpu); p->sched_contributes_to_load = !!task_contributes_to_load(p); p->state = TASK_WAKING; -- 2.7.3