From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751871AbcFNHnv (ORCPT ); Tue, 14 Jun 2016 03:43:51 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:34330 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751685AbcFNHnu (ORCPT ); Tue, 14 Jun 2016 03:43:50 -0400 Date: Tue, 14 Jun 2016 09:43:46 +0200 From: Ingo Molnar To: WANG Chao Cc: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org Subject: Re: [PATCH] sched: unlikely corrupted stack end Message-ID: <20160614074346.GA9689@gmail.com> References: <20160614064306.48035-1-wcwxyz@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160614064306.48035-1-wcwxyz@gmail.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * WANG Chao wrote: > unlikely() was dropped in commit ce03e41 ("sched/core: Drop unlikely > behind BUG_ON()"), but commit 29d6455 ("sched: panic on corrupted stack > end") dropped BUG_ON() and called panic directly. > > Now we should bring unlikely() back for branch prediction. > > Signed-off-by: WANG Chao > --- > 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 017d539..7db442c 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -3170,7 +3170,7 @@ static noinline void __schedule_bug(struct task_struct *prev) > static inline void schedule_debug(struct task_struct *prev) > { > #ifdef CONFIG_SCHED_STACK_END_CHECK > - if (task_stack_end_corrupted(prev)) > + if (unlikely(task_stack_end_corrupted(prev))) > panic("corrupted stack end detected inside scheduler\n"); > #endif It would be better and cleaner to push that into the task_stack_end_corrupted() definition. (and to turn it into an inline function while we are touching it.) Thanks, Ingo