From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754354AbdBNP0h (ORCPT ); Tue, 14 Feb 2017 10:26:37 -0500 Received: from mga07.intel.com ([134.134.136.100]:20489 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754329AbdBNP0b (ORCPT ); Tue, 14 Feb 2017 10:26:31 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,161,1484035200"; d="scan'208";a="58489247" Message-ID: <1487085984.1208.9.camel@tzanussi-mobl.amr.corp.intel.com> Subject: Re: [RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility From: Tom Zanussi To: Namhyung Kim Cc: rostedt@goodmis.org, tglx@linutronix.de, mhiramat@kernel.org, linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org Date: Tue, 14 Feb 2017 09:26:24 -0600 In-Reply-To: <20170213060439.GG14705@sejong> References: <88d17e7197f809ade0dd150712ae1d6b86b26b6b.1486569306.git.tom.zanussi@linux.intel.com> <20170213060439.GG14705@sejong> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4 (3.10.4-4.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2017-02-13 at 15:04 +0900, Namhyung Kim wrote: > On Wed, Feb 08, 2017 at 11:25:08AM -0600, Tom Zanussi wrote: > > Named triggers must also have the same set of variables in order to be > > considered compatible - update the trigger match test to account for > > that. > > > > The reason for this requirement is that named triggers with variables > > are meant to allow one or more events to set the same variable. > > > > Signed-off-by: Tom Zanussi > > --- > > kernel/trace/trace_events_hist.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c > > index e707577..889455e 100644 > > --- a/kernel/trace/trace_events_hist.c > > +++ b/kernel/trace/trace_events_hist.c > > @@ -1576,6 +1576,10 @@ static bool hist_trigger_match(struct event_trigger_data *data, > > return false; > > if (key_field->is_signed != key_field_test->is_signed) > > return false; > > + if ((key_field->var_name && !key_field_test->var_name) || > > + (!key_field->var_name && key_field_test->var_name) || > > + strcmp(key_field->var_name, key_field_test->var_name) != 0) > > + return false; > > What if key_field->var_name and key_field_test->var_name are both > NULL? > Yep, it's a problem, thanks for pointing it out. Tom > Thanks, > Namhyung > > > } > > > > for (i = 0; i < hist_data->n_sort_keys; i++) { > > -- > > 1.9.3 > >