From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752505AbcJJND4 (ORCPT ); Mon, 10 Oct 2016 09:03:56 -0400 Received: from mail-oi0-f68.google.com ([209.85.218.68]:34030 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752139AbcJJNDE (ORCPT ); Mon, 10 Oct 2016 09:03:04 -0400 Date: Mon, 10 Oct 2016 09:02:53 -0400 From: Tejun Heo To: Michael Ellerman Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, jiangshanlai@gmail.com, akpm@linux-foundation.org, kernel-team@fb.com, "linuxppc-dev@lists.ozlabs.org" Subject: Re: Oops on Power8 (was Re: [PATCH v2 1/7] workqueue: make workqueue available early during boot) Message-ID: <20161010130253.GB29742@mtj.duckdns.org> References: <1473967821-24363-1-git-send-email-tj@kernel.org> <1473967821-24363-2-git-send-email-tj@kernel.org> <20160917172314.GB10771@mtj.duckdns.org> <87twck5wqo.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87twck5wqo.fsf@concordia.ellerman.id.au> User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Michael. On Mon, Oct 10, 2016 at 09:22:55PM +1100, Michael Ellerman wrote: > This patch seems to be causing one of my Power8 boxes not to boot. > > Specifically commit 3347fa092821 ("workqueue: make workqueue available > early during boot") in linux-next. > > If I revert this on top of next-20161005 then the machine boots again. > > I've attached the oops below. It looks like the cfs_rq of p->se is NULL? Hah, weird that it's arch dependent, or maybe it's just different config options. Most likely, it's caused by workqueue_init() call being moved too early. Can you please try the following patch and see whether the problem goes away? Thanks. diff --git a/init/main.c b/init/main.c index 5c4fd68..fe4fa47 100644 --- a/init/main.c +++ b/init/main.c @@ -1013,7 +1013,7 @@ static noinline void __init kernel_init_freeable(void) smp_prepare_cpus(setup_max_cpus); - workqueue_init(); + //workqueue_init(); do_pre_smp_initcalls(); lockup_detector_init(); diff --git a/kernel/workqueue.c b/kernel/workqueue.c index ad0cd43..400f5e2 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5585,3 +5585,4 @@ int __init workqueue_init(void) return 0; } +early_initcall(workqueue_init);