Commit 05ddb25c authored by Tom Zanussi's avatar Tom Zanussi Committed by Steven Rostedt (VMware)

tracing: Add hist trigger comments for variable-related fields

Add a few comments to help clarify how variable and variable reference
fields are used in the code.

Link: http://lkml.kernel.org/r/ea857ce948531d7bec712bbb0f38360aa1d378ec.1545161087.git.tom.zanussi@linux.intel.comAcked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Reviewed-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 91220134
...@@ -40,6 +40,16 @@ enum field_op_id { ...@@ -40,6 +40,16 @@ enum field_op_id {
FIELD_OP_UNARY_MINUS, FIELD_OP_UNARY_MINUS,
}; };
/*
* A hist_var (histogram variable) contains variable information for
* hist_fields having the HIST_FIELD_FL_VAR or HIST_FIELD_FL_VAR_REF
* flag set. A hist_var has a variable name e.g. ts0, and is
* associated with a given histogram trigger, as specified by
* hist_data. The hist_var idx is the unique index assigned to the
* variable by the hist trigger's tracing_map. The idx is what is
* used to set a variable's value and, by a variable reference, to
* retrieve it.
*/
struct hist_var { struct hist_var {
char *name; char *name;
struct hist_trigger_data *hist_data; struct hist_trigger_data *hist_data;
...@@ -56,11 +66,29 @@ struct hist_field { ...@@ -56,11 +66,29 @@ struct hist_field {
const char *type; const char *type;
struct hist_field *operands[HIST_FIELD_OPERANDS_MAX]; struct hist_field *operands[HIST_FIELD_OPERANDS_MAX];
struct hist_trigger_data *hist_data; struct hist_trigger_data *hist_data;
/*
* Variable fields contain variable-specific info in var.
*/
struct hist_var var; struct hist_var var;
enum field_op_id operator; enum field_op_id operator;
char *system; char *system;
char *event_name; char *event_name;
/*
* The name field is used for EXPR and VAR_REF fields. VAR
* fields contain the variable name in var.name.
*/
char *name; char *name;
/*
* When a histogram trigger is hit, if it has any references
* to variables, the values of those variables are collected
* into a var_ref_vals array by resolve_var_refs(). The
* current value of each variable is read from the tracing_map
* using the hist field's hist_var.idx and entered into the
* var_ref_idx entry i.e. var_ref_vals[var_ref_idx].
*/
unsigned int var_ref_idx; unsigned int var_ref_idx;
bool read_once; bool read_once;
}; };
...@@ -365,6 +393,14 @@ struct action_data { ...@@ -365,6 +393,14 @@ struct action_data {
union { union {
struct { struct {
/*
* When a histogram trigger is hit, the values of any
* references to variables, including variables being passed
* as parameters to synthetic events, are collected into a
* var_ref_vals array. This var_ref_idx is the index of the
* first param in the array to be passed to the synthetic
* event invocation.
*/
unsigned int var_ref_idx; unsigned int var_ref_idx;
char *match_event; char *match_event;
char *match_event_system; char *match_event_system;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment