Skip to content

Commit

Permalink
Merge tag 'trace-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/g…
Browse files Browse the repository at this point in the history
…it/rostedt/linux-trace

Pull tracing updates from Steven Rostedt:
 "This is mostly clean ups and small fixes.  Some of the more visible
  changes are:

   - The function pid code uses the event pid filtering logic
   - [ku]probe events have access to current->comm
   - trace_printk now has sample code
   - PCI devices now trace physical addresses
   - stack tracing has less unnessary functions traced"

* tag 'trace-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  printk, tracing: Avoiding unneeded blank lines
  tracing: Use __get_str() when manipulating strings
  tracing, RAS: Cleanup on __get_str() usage
  tracing: Use outer () on __get_str() definition
  ftrace: Reduce size of function graph entries
  tracing: Have HIST_TRIGGERS select TRACING
  tracing: Using for_each_set_bit() to simplify trace_pid_write()
  ftrace: Move toplevel init out of ftrace_init_tracefs()
  tracing/function_graph: Fix filters for function_graph threshold
  tracing: Skip more functions when doing stack tracing of events
  tracing: Expose CPU physical addresses (resource values) for PCI devices
  tracing: Show the preempt count of when the event was called
  tracing: Add trace_printk sample code
  tracing: Choose static tp_printk buffer by explicit nesting count
  tracing: expose current->comm to [ku]probe events
  ftrace: Have set_ftrace_pid use the bitmap like events do
  tracing: Move pid_list write processing into its own function
  tracing: Move the pid_list seq_file functions to be global
  tracing: Move filtered_pid helper functions into trace.c
  tracing: Make the pid filtering helper functions global
  • Loading branch information
torvalds committed Jul 29, 2016
2 parents e55884d + 78aebca commit c624c86
Show file tree
Hide file tree
Showing 25 changed files with 667 additions and 468 deletions.
3 changes: 3 additions & 0 deletions Documentation/trace/kprobetrace.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Synopsis of kprobe_events
$stackN : Fetch Nth entry of stack (N >= 0)
$stack : Fetch stack address.
$retval : Fetch return value.(*)
$comm : Fetch current task comm.
+|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**)
NAME=FETCHARG : Set NAME as the argument name of FETCHARG.
FETCHARG:TYPE : Set TYPE as the type of FETCHARG. Currently, basic types
Expand All @@ -62,6 +63,8 @@ offset, and container-size (usually 32). The syntax is;

b<bit-width>@<bit-offset>/<container-size>

For $comm, the default type is "string"; any other type is invalid.


Per-Probe Event Filtering
-------------------------
Expand Down
3 changes: 3 additions & 0 deletions Documentation/trace/uprobetracer.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ Synopsis of uprobe_tracer
$stackN : Fetch Nth entry of stack (N >= 0)
$stack : Fetch stack address.
$retval : Fetch return value.(*)
$comm : Fetch current task comm.
+|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**)
NAME=FETCHARG : Set NAME as the argument name of FETCHARG.
FETCHARG:TYPE : Set TYPE as the type of FETCHARG. Currently, basic types
Expand All @@ -57,6 +58,8 @@ offset, and container-size (usually 32). The syntax is;

b<bit-width>@<bit-offset>/<container-size>

For $comm, the default type is "string"; any other type is invalid.


Event Profiling
---------------
Expand Down
4 changes: 2 additions & 2 deletions fs/nfs/nfs4trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -1235,8 +1235,8 @@ DECLARE_EVENT_CLASS(nfs4_idmap_event,
len = 0;
__entry->error = error < 0 ? error : 0;
__entry->id = id;
memcpy(__get_dynamic_array(name), name, len);
((char *)__get_dynamic_array(name))[len] = 0;
memcpy(__get_str(name), name, len);
__get_str(name)[len] = 0;
),

TP_printk(
Expand Down
4 changes: 2 additions & 2 deletions fs/nfs/nfstrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -707,9 +707,9 @@ TRACE_EVENT(nfs_sillyrename_unlink,
__entry->dev = dir->i_sb->s_dev;
__entry->dir = NFS_FILEID(dir);
__entry->error = error;
memcpy(__get_dynamic_array(name),
memcpy(__get_str(name),
data->args.name.name, len);
((char *)__get_dynamic_array(name))[len] = 0;
__get_str(name)[len] = 0;
),

TP_printk(
Expand Down
12 changes: 8 additions & 4 deletions include/linux/ftrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -754,23 +754,27 @@ static inline void ftrace_init(void) { }

/*
* Structure that defines an entry function trace.
* It's already packed but the attribute "packed" is needed
* to remove extra padding at the end.
*/
struct ftrace_graph_ent {
unsigned long func; /* Current function */
int depth;
};
} __packed;

/*
* Structure that defines a return function trace.
* It's already packed but the attribute "packed" is needed
* to remove extra padding at the end.
*/
struct ftrace_graph_ret {
unsigned long func; /* Current function */
unsigned long long calltime;
unsigned long long rettime;
/* Number of functions that overran the depth limit for current task */
unsigned long overrun;
unsigned long long calltime;
unsigned long long rettime;
int depth;
};
} __packed;

/* Type of the callback handlers for tracing function graph*/
typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); /* return */
Expand Down
4 changes: 2 additions & 2 deletions include/ras/ras_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ TRACE_EVENT(mc_event,
__entry->error_count,
mc_event_error_type(__entry->error_type),
__entry->error_count > 1 ? "s" : "",
((char *)__get_str(msg))[0] ? " " : "",
__get_str(msg)[0] ? " " : "",
__get_str(msg),
__get_str(label),
__entry->mc_index,
Expand All @@ -157,7 +157,7 @@ TRACE_EVENT(mc_event,
__entry->address,
1 << __entry->grain_bits,
__entry->syndrome,
((char *)__get_str(driver_detail))[0] ? " " : "",
__get_str(driver_detail)[0] ? " " : "",
__get_str(driver_detail))
);

Expand Down
12 changes: 10 additions & 2 deletions include/trace/events/printk.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,16 @@ TRACE_EVENT(console,
),

TP_fast_assign(
memcpy(__get_dynamic_array(msg), text, len);
((char *)__get_dynamic_array(msg))[len] = 0;
/*
* Each trace entry is printed in a new line.
* If the msg finishes with '\n', cut it off
* to avoid blank lines in the trace.
*/
if ((len > 0) && (text[len-1] == '\n'))
len -= 1;

memcpy(__get_str(msg), text, len);
__get_str(msg)[len] = 0;
),

TP_printk("%s", __get_str(msg))
Expand Down
2 changes: 1 addition & 1 deletion include/trace/perf.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
((__entry->__data_loc_##field >> 16) & 0xffff)

#undef __get_str
#define __get_str(field) (char *)__get_dynamic_array(field)
#define __get_str(field) ((char *)__get_dynamic_array(field))

#undef __get_bitmask
#define __get_bitmask(field) (char *)__get_dynamic_array(field)
Expand Down
2 changes: 1 addition & 1 deletion include/trace/trace_events.h
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ TRACE_MAKE_SYSTEM_STR();
((__entry->__data_loc_##field >> 16) & 0xffff)

#undef __get_str
#define __get_str(field) (char *)__get_dynamic_array(field)
#define __get_str(field) ((char *)__get_dynamic_array(field))

#undef __get_bitmask
#define __get_bitmask(field) \
Expand Down
1 change: 1 addition & 0 deletions kernel/trace/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@ config HIST_TRIGGERS
bool "Histogram triggers"
depends on ARCH_HAVE_NMI_SAFE_CMPXCHG
select TRACING_MAP
select TRACING
default n
help
Hist triggers allow one or more arbitrary trace event fields
Expand Down
Loading

0 comments on commit c624c86

Please sign in to comment.