Re: [RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-14 Thread Tom Zanussi
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
> > 




Re: [RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-14 Thread Tom Zanussi
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
> > 




Re: [RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-12 Thread Namhyung Kim
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?

Thanks,
Namhyung

>   }
>  
>   for (i = 0; i < hist_data->n_sort_keys; i++) {
> -- 
> 1.9.3
> 


Re: [RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-12 Thread Namhyung Kim
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?

Thanks,
Namhyung

>   }
>  
>   for (i = 0; i < hist_data->n_sort_keys; i++) {
> -- 
> 1.9.3
> 


[RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-08 Thread Tom Zanussi
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;
}
 
for (i = 0; i < hist_data->n_sort_keys; i++) {
-- 
1.9.3



[RFC][PATCH 12/21] tracing: Account for variables in named trigger compatibility

2017-02-08 Thread Tom Zanussi
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;
}
 
for (i = 0; i < hist_data->n_sort_keys; i++) {
-- 
1.9.3