From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932186AbcEaTXg (ORCPT ); Tue, 31 May 2016 15:23:36 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:59213 "EHLO relay2-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750813AbcEaTXf (ORCPT ); Tue, 31 May 2016 15:23:35 -0400 X-Originating-IP: 67.23.203.6 Date: Tue, 31 May 2016 12:23:26 -0700 From: Josh Triplett To: Daniel Bristot de Oliveira Cc: linux-kernel@vger.kernel.org, Jonathan Corbet , "Paul E. McKenney" , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , "Luis Claudio R. Goncalves" Subject: Re: [RFC PATCH 1/2] rcu: sysctl: Panic on RCU Stall Message-ID: <20160531192325.GA4851@x> References: <20160531191827.GA4574@x> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160531191827.GA4574@x> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 31, 2016 at 12:18:27PM -0700, Josh Triplett wrote: > On Tue, May 31, 2016 at 04:07:32PM -0300, Daniel Bristot de Oliveira wrote: > > It is not always easy to define the cause of an RCU stall just by > > analysing the RCU stall messages, mainly when the problem is caused > > by the indirect starvation of rcu threads. For example, when preempt_rcu > > is not awakened due to the starvation of a timer softirq. > > > > We have been hard coding panic() in the RCU stall functions for > > some time while testing the kernel-rt. But this is not possible in > > some scenarios, like when supporting customers. > > > > This patch implements the sysctl kerner.panic_on_rcu_stall. If > > set to 1, the system will panic() when an RCU stall takes place, > > enabling the capture of a vmcore. The vmcore provides a way to analyze > > all kernel/tasks states, helping out to point to the culprit and the > > solution for the stall. > > > > The kerner.panic_on_rcu_stall sysctl is disabled by default. > > s/kerner/kernel/ (here and in the previous paragraph). > > Also, even though it's only two lines, please consider creating a static > function wrapping the if and panic, to avoid duplication. > > With those changes, > Reviewed-by: Josh Triplett Sorry, realized something else a moment after sending: I don't think this will build if you use the tiny RCU implementation. That implementation *does* support tracing, and if you enable tracing, you'll have CONFIG_RCU_STALL_COMMON=y, but you won't build tree.c where the variable definition lives. So, the sysctl code will reference a variable that doesn't exist. - Josh Triplett