From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de ([195.135.220.15]:57295 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753741AbcCWONZ (ORCPT ); Wed, 23 Mar 2016 10:13:25 -0400 Subject: Re: [for-next][PATCH 1/2] tracing: Fix trace_printk() to print when not using bprintk() To: Steven Rostedt , linux-kernel@vger.kernel.org References: <20160323122443.532267312@goodmis.org> <20160323122508.858050620@goodmis.org> Cc: Ingo Molnar , Andrew Morton , stable@vger.kernel.org From: Vlastimil Babka Message-ID: <56F2A482.1010302@suse.cz> Date: Wed, 23 Mar 2016 15:13:22 +0100 MIME-Version: 1.0 In-Reply-To: <20160323122508.858050620@goodmis.org> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 03/23/2016 01:24 PM, Steven Rostedt wrote: > From: "Steven Rostedt (Red Hat)" > > The trace_printk() code will allocate extra buffers if the compile detects > that a trace_printk() is used. To do this, the format of the trace_printk() > is saved to the __trace_printk_fmt section, and if that section is bigger > than zero, the buffers are allocated (along with a message that this has > happened). > > If trace_printk() uses a format that is not a constant, and thus something > not guaranteed to be around when the print happens, the compiler optimizes > the fmt out, as it is not used, and the __trace_printk_fmt section is not > filled. This means the kernel will not allocate the special buffers needed > for the trace_printk() and the trace_printk() will not write anything to the > tracing buffer. > > Adding a "__used" to the variable in the __trace_printk_fmt section will > keep it around, even though it is set to NULL. This will keep the string > from being printed in the debugfs/tracing/printk_formats section as it is > not needed. > > Reported-by: Vlastimil Babka > Fixes: 07d777fe8c398 "tracing: Add percpu buffers for trace_printk()" > Cc: stable@vger.kernel.org # v3.5+ > Signed-off-by: Steven Rostedt Tested-by: Vlastimil Babka Thanks!