From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756065AbdDMJAS (ORCPT ); Thu, 13 Apr 2017 05:00:18 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:55669 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751276AbdDMJAP (ORCPT ); Thu, 13 Apr 2017 05:00:15 -0400 Date: Thu, 13 Apr 2017 11:00:05 +0200 From: Peter Zijlstra To: Steven Rostedt Cc: Mel Gorman , LKML , Ingo Molnar , Matt Fleming , Srikar Dronamraju Subject: Re: [PATCH v2] sched: Enabled schedstat when schedstat tracepoints are enabled Message-ID: <20170413090005.ewdwm3on5u2urhxw@hirez.programming.kicks-ass.net> References: <20170412160432.481ee5fb@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170412160432.481ee5fb@gandalf.local.home> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 12, 2017 at 10:56:07PM -0400, Steven Rostedt wrote: > From: Steven Rostedt (VMware) > > During my tests, I see this in my dmesg: > > "Scheduler tracepoints stat_sleep, stat_iowait, stat_blocked and > stat_runtime require the kernel parameter schedstats=enabled or > kernel.sched_schedstats=1" > > And found the commit: > > cb2517653fc ("sched/debug: Make schedstats a runtime tunable that is > disabled by default") > > Which states: > > "For tracepoints, there is a simple warning as it's not safe to activate > schedstats in the context when it's known the tracepoint may be wanted > but is unavailable." > > I'm assuming that Mel did not know about the TRACE_EVENT_FN() and > DEFINE_EVENT_FN() that allow for callbacks for tracepoints as they are > enabled and disabled. I do not see any reason for not enabling > schedstat when one of its tracepoints are enabled. > > The state of schedstat is saved when the first tracepoint is enabled, > and that state is put back when the tracepoints are disabled. There is one additional complication with all this. Dynamically enabling the sched_stats like this doesn't guarantee correct information. So you've now taken away the informational print and silently generate bollocks numbers.