From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754740AbbLPQWs (ORCPT ); Wed, 16 Dec 2015 11:22:48 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41827 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753192AbbLPQWr (ORCPT ); Wed, 16 Dec 2015 11:22:47 -0500 Subject: Re: new warning on sysrq kernel crash trigger To: Anirban Sinha References: <20151211052647.GL28602@linux.vnet.ibm.com> <566B49E3.1080107@redhat.com> <20151211222742.GJ4054@linux.vnet.ibm.com> <20151212010344.GR4054@linux.vnet.ibm.com> <566EF73C.3090505@redhat.com> Cc: Paul McKenney , Randy Dunlap , Richard Weinberger , "linux-kernel@vger.kernel.org" , Ivan Delalande , fruggeri From: Rik van Riel Message-ID: <56718FD6.60509@redhat.com> Date: Wed, 16 Dec 2015 11:22:46 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 12/14/2015 07:14 PM, Anirban Sinha wrote: > > > On Mon, 14 Dec 2015, Rik van Riel wrote: > >> On 12/14/2015 11:24 AM, Ani Sinha wrote: >>> Rik, any comments? >> >> Another good option is to simply ignore this warning, or drop the >> rcu_read_lock before doing the alt-syrsq-c action. >> >> After all, alt-sysrq-c is "crash the system, take a crash dump", >> which is not an action the system ever returns from. >> > > Yea I thought about this idea previously but then discarded it > thinking it would be too hacky. Here's the cooked up patch. I hope > this can be approved for mainline soon (I'm on vacation and working > just on this issue remotely) : > > From 105ff3ffce380650b3d58b3594a9be47bd604b28 Mon Sep 17 00:00:00 > 2001 From: Ani Sinha Date: Mon, 14 Dec 2015 > 14:55:08 -0800 Subject: [PATCH 1/1] Fix 'sleeping function called > from invalid context' warning in sysrq generated crash. > > Commit 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq") replaced > spin_lock_irqsave() calls with rcu_read_lock() calls in sysrq. > Since rcu_read_lock() does not disable preemption, > faulthandler_disabled() in __do_page_fault() in x86/fault.c returns > false. When the code later calls might_sleep() in the pagefault > handler, we get the following warning: > > BUG: sleeping function called from invalid context at > ../arch/x86/mm/fault.c:1187 in_atomic(): 0, irqs_disabled(): 0, > pid: 4706, name: bash Preemption disabled at:[] > printk+0x48/0x4a > > To fix this, we release the RCU read lock before we crash. > > Tested this patch on linux 3.18 by booting off one of our boards. > > Fixes: 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq") > > Signed-off-by: Ani Sinha Reviewed-by: Rik van Riel -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJWcY++AAoJEM553pKExN6DMsEIAIgRI2dlnimHDR30BWhAhj1m rPlG3zEKsilR5/MjD3y/LZqIqG2PmMEpIGajeTOu5O9cZhIyon/6snHTST36kN2Y 2CMCdUYNTQtDLpg8RoFsu8cvL4gBdi4J+o/U4E8gFXn6MqNsk3U0Dow/BJl1dPAm V2/aN2K6od3+HU0q3ZJGfcnc4SipkAnA3nmrh5OntXLtZBfye6ge7UONxLzBI2vR +7sGTd3ebKd9AZlYevZQxnSaeJbikGJoCwreqMVTueX8fbhvvReo/f6OfnXF6HaF vDK6lle/BFuHYb11/cWonSuKcphpAOfvX+n90BtbBMedUKNlGvLBBH55feIbOpw= =BP+x -----END PGP SIGNATURE-----