Commit b3c98314 authored by Paul E. McKenney's avatar Paul E. McKenney

rcutorture: Place event-traced strings into trace buffer

Strings used in event tracing need to be specially handled, for example,
being copied to the trace buffer instead of being pointed to by the trace
buffer.  Although the TPS() macro can be used to "launder" pointed-to
strings, this might not be all that effective within a loadable module.
This commit therefore copies rcutorture's strings to the trace buffer.
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
parent 5e741fa9
...@@ -703,6 +703,7 @@ TRACE_EVENT(rcu_batch_end, ...@@ -703,6 +703,7 @@ TRACE_EVENT(rcu_batch_end,
* at the beginning and end of the read, respectively. Note that the * at the beginning and end of the read, respectively. Note that the
* callback address can be NULL. * callback address can be NULL.
*/ */
#define RCUTORTURENAME_LEN 8
TRACE_EVENT(rcu_torture_read, TRACE_EVENT(rcu_torture_read,
TP_PROTO(const char *rcutorturename, struct rcu_head *rhp, TP_PROTO(const char *rcutorturename, struct rcu_head *rhp,
...@@ -711,7 +712,7 @@ TRACE_EVENT(rcu_torture_read, ...@@ -711,7 +712,7 @@ TRACE_EVENT(rcu_torture_read,
TP_ARGS(rcutorturename, rhp, secs, c_old, c), TP_ARGS(rcutorturename, rhp, secs, c_old, c),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(const char *, rcutorturename) __field(char, rcutorturename[RCUTORTURENAME_LEN])
__field(struct rcu_head *, rhp) __field(struct rcu_head *, rhp)
__field(unsigned long, secs) __field(unsigned long, secs)
__field(unsigned long, c_old) __field(unsigned long, c_old)
...@@ -719,7 +720,9 @@ TRACE_EVENT(rcu_torture_read, ...@@ -719,7 +720,9 @@ TRACE_EVENT(rcu_torture_read,
), ),
TP_fast_assign( TP_fast_assign(
__entry->rcutorturename = rcutorturename; strncpy(__entry->rcutorturename, rcutorturename,
RCUTORTURENAME_LEN);
__entry->rcutorturename[RCUTORTURENAME_LEN - 1] = 0;
__entry->rhp = rhp; __entry->rhp = rhp;
__entry->secs = secs; __entry->secs = secs;
__entry->c_old = c_old; __entry->c_old = c_old;
......
...@@ -496,7 +496,7 @@ static struct rcu_torture_ops rcu_busted_ops = { ...@@ -496,7 +496,7 @@ static struct rcu_torture_ops rcu_busted_ops = {
.fqs = NULL, .fqs = NULL,
.stats = NULL, .stats = NULL,
.irq_capable = 1, .irq_capable = 1,
.name = "rcu_busted" .name = "busted"
}; };
/* /*
......
rcutorture.torture_type=rcu_busted rcutorture.torture_type=busted
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