Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751087AbdIKGbj (ORCPT ); Mon, 11 Sep 2017 02:31:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35998 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750903AbdIKGbi (ORCPT ); Mon, 11 Sep 2017 02:31:38 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 78D1FA0C1D Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=zsun@redhat.com Subject: Re: [PATCH v3] tracing: Ignore mmiotrace from kernel commandline To: rostedt@goodmis.org, linux-kernel@vger.kernel.org Cc: mingo@redhat.com, karolherbst@gmail.com, ppaalanen@gmail.com, akpm@linux-foundation.org, Ziqian Sun References: <1505111195-31942-1-git-send-email-zsun@redhat.com> From: "Ziqian SUN (Zamir)" Message-ID: <3cec495b-89a5-b8c6-e319-af9f969582e0@redhat.com> Date: Mon, 11 Sep 2017 14:31:34 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <1505111195-31942-1-git-send-email-zsun@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 11 Sep 2017 06:31:38 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2520 Lines: 74 On 09/11/2017 02:26 PM, Ziqian SUN (Zamir) wrote: > From: "Ziqian SUN (Zamir)" > > The mmiotrace tracer cannot be enabled with ftrace=mmiotrace in kernel > commandline. With this patch, noboot is added to the tracer struct, > and when system boot with a tracer that has noboot=true, it will print > out a warning message and continue booting. > > Signed-off-by: Ziqian SUN (Zamir) > -- > v1 -> v2 : remove unessential comment > v2 -> v3 : Use tracer struct instead of a separate list to store noboot > --- > kernel/trace/trace.c | 7 +++++++ > kernel/trace/trace.h | 2 ++ > kernel/trace/trace_mmiotrace.c | 1 + > 3 files changed, 10 insertions(+) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index 5360b7a..48c474f 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -5358,6 +5358,13 @@ static int tracing_set_tracer(struct trace_array *tr, const char *buf) > if (t == tr->current_trace) > goto out; > > + /* Some tracers won't work on kernel command line */ > + if (system_state < SYSTEM_RUNNING && t->noboot) { > + pr_warn("Tracer '%s' is not allowed on command line, ignored\n", > + t->name); I feel the core trace printed by WARN is not so meaningful, so I use pr_warn instead. > + goto out; > + } > + > /* Some tracers are only allowed for the top level buffer */ > if (!trace_ok_for_array(t, tr)) { > ret = -EINVAL; > diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h > index fb5d54d..652c682 100644 > --- a/kernel/trace/trace.h > +++ b/kernel/trace/trace.h > @@ -444,6 +444,8 @@ struct tracer { > #ifdef CONFIG_TRACER_MAX_TRACE > bool use_max_tr; > #endif > + /* True if tracer cannot be enabled in kernel param */ > + bool noboot; > }; > > > diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c > index cd7480d..dca78fc 100644 > --- a/kernel/trace/trace_mmiotrace.c > +++ b/kernel/trace/trace_mmiotrace.c > @@ -282,6 +282,7 @@ static enum print_line_t mmio_print_line(struct trace_iterator *iter) > .close = mmio_close, > .read = mmio_read, > .print_line = mmio_print_line, > + .noboot = true, > }; > > __init static int init_mmio_trace(void) > This patch passed my own test on top of Fedora kernel 4.13.0-1.fc26.x86_64. -- Ziqian SUN (Zamir) 9F Raycom office (NAY) Red Hat Software (Beijing) Co.,Ltd IRC: zsun (internal and freenode) Tel: +86 10 65627458 GPG : 1D86 6D4A 49CE 4BBD 72CF FCF5 D856 6E11 F2A0 525E