diff options
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/asoc.h | 25 | ||||
| -rw-r--r-- | include/trace/events/ext4.h | 17 | ||||
| -rw-r--r-- | include/trace/events/host1x.h | 27 | ||||
| -rw-r--r-- | include/trace/events/rcu.h | 4 | ||||
| -rw-r--r-- | include/trace/events/sched.h | 9 | ||||
| -rw-r--r-- | include/trace/events/scsi.h | 2 | ||||
| -rw-r--r-- | include/trace/events/sunrpc.h | 268 | ||||
| -rw-r--r-- | include/trace/events/target.h | 2 | ||||
| -rw-r--r-- | include/trace/ftrace.h | 8 |
9 files changed, 302 insertions, 60 deletions
diff --git a/include/trace/events/asoc.h b/include/trace/events/asoc.h index b04ee7e5a466..88cf39d96d0f 100644 --- a/include/trace/events/asoc.h +++ b/include/trace/events/asoc.h | |||
| @@ -288,31 +288,6 @@ TRACE_EVENT(snd_soc_jack_notify, | |||
| 288 | TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) | 288 | TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) |
| 289 | ); | 289 | ); |
| 290 | 290 | ||
| 291 | TRACE_EVENT(snd_soc_cache_sync, | ||
| 292 | |||
| 293 | TP_PROTO(struct snd_soc_codec *codec, const char *type, | ||
| 294 | const char *status), | ||
| 295 | |||
| 296 | TP_ARGS(codec, type, status), | ||
| 297 | |||
| 298 | TP_STRUCT__entry( | ||
| 299 | __string( name, codec->component.name) | ||
| 300 | __string( status, status ) | ||
| 301 | __string( type, type ) | ||
| 302 | __field( int, id ) | ||
| 303 | ), | ||
| 304 | |||
| 305 | TP_fast_assign( | ||
| 306 | __assign_str(name, codec->component.name); | ||
| 307 | __assign_str(status, status); | ||
| 308 | __assign_str(type, type); | ||
| 309 | __entry->id = codec->component.id; | ||
| 310 | ), | ||
| 311 | |||
| 312 | TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), | ||
| 313 | (int)__entry->id, __get_str(type), __get_str(status)) | ||
| 314 | ); | ||
| 315 | |||
| 316 | #endif /* _TRACE_ASOC_H */ | 291 | #endif /* _TRACE_ASOC_H */ |
| 317 | 292 | ||
| 318 | /* This part must be outside protection */ | 293 | /* This part must be outside protection */ |
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index ff4bd1b35246..6cfb841fea7c 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
| @@ -43,15 +43,13 @@ struct extent_status; | |||
| 43 | { EXT4_GET_BLOCKS_METADATA_NOFAIL, "METADATA_NOFAIL" }, \ | 43 | { EXT4_GET_BLOCKS_METADATA_NOFAIL, "METADATA_NOFAIL" }, \ |
| 44 | { EXT4_GET_BLOCKS_NO_NORMALIZE, "NO_NORMALIZE" }, \ | 44 | { EXT4_GET_BLOCKS_NO_NORMALIZE, "NO_NORMALIZE" }, \ |
| 45 | { EXT4_GET_BLOCKS_KEEP_SIZE, "KEEP_SIZE" }, \ | 45 | { EXT4_GET_BLOCKS_KEEP_SIZE, "KEEP_SIZE" }, \ |
| 46 | { EXT4_GET_BLOCKS_NO_LOCK, "NO_LOCK" }, \ | 46 | { EXT4_GET_BLOCKS_NO_LOCK, "NO_LOCK" }) |
| 47 | { EXT4_GET_BLOCKS_NO_PUT_HOLE, "NO_PUT_HOLE" }) | ||
| 48 | 47 | ||
| 49 | #define show_mflags(flags) __print_flags(flags, "", \ | 48 | #define show_mflags(flags) __print_flags(flags, "", \ |
| 50 | { EXT4_MAP_NEW, "N" }, \ | 49 | { EXT4_MAP_NEW, "N" }, \ |
| 51 | { EXT4_MAP_MAPPED, "M" }, \ | 50 | { EXT4_MAP_MAPPED, "M" }, \ |
| 52 | { EXT4_MAP_UNWRITTEN, "U" }, \ | 51 | { EXT4_MAP_UNWRITTEN, "U" }, \ |
| 53 | { EXT4_MAP_BOUNDARY, "B" }, \ | 52 | { EXT4_MAP_BOUNDARY, "B" }) |
| 54 | { EXT4_MAP_FROM_CLUSTER, "C" }) | ||
| 55 | 53 | ||
| 56 | #define show_free_flags(flags) __print_flags(flags, "|", \ | 54 | #define show_free_flags(flags) __print_flags(flags, "|", \ |
| 57 | { EXT4_FREE_BLOCKS_METADATA, "METADATA" }, \ | 55 | { EXT4_FREE_BLOCKS_METADATA, "METADATA" }, \ |
| @@ -2452,15 +2450,14 @@ TRACE_EVENT(ext4_collapse_range, | |||
| 2452 | 2450 | ||
| 2453 | TRACE_EVENT(ext4_es_shrink, | 2451 | TRACE_EVENT(ext4_es_shrink, |
| 2454 | TP_PROTO(struct super_block *sb, int nr_shrunk, u64 scan_time, | 2452 | TP_PROTO(struct super_block *sb, int nr_shrunk, u64 scan_time, |
| 2455 | int skip_precached, int nr_skipped, int retried), | 2453 | int nr_skipped, int retried), |
| 2456 | 2454 | ||
| 2457 | TP_ARGS(sb, nr_shrunk, scan_time, skip_precached, nr_skipped, retried), | 2455 | TP_ARGS(sb, nr_shrunk, scan_time, nr_skipped, retried), |
| 2458 | 2456 | ||
| 2459 | TP_STRUCT__entry( | 2457 | TP_STRUCT__entry( |
| 2460 | __field( dev_t, dev ) | 2458 | __field( dev_t, dev ) |
| 2461 | __field( int, nr_shrunk ) | 2459 | __field( int, nr_shrunk ) |
| 2462 | __field( unsigned long long, scan_time ) | 2460 | __field( unsigned long long, scan_time ) |
| 2463 | __field( int, skip_precached ) | ||
| 2464 | __field( int, nr_skipped ) | 2461 | __field( int, nr_skipped ) |
| 2465 | __field( int, retried ) | 2462 | __field( int, retried ) |
| 2466 | ), | 2463 | ), |
| @@ -2469,16 +2466,14 @@ TRACE_EVENT(ext4_es_shrink, | |||
| 2469 | __entry->dev = sb->s_dev; | 2466 | __entry->dev = sb->s_dev; |
| 2470 | __entry->nr_shrunk = nr_shrunk; | 2467 | __entry->nr_shrunk = nr_shrunk; |
| 2471 | __entry->scan_time = div_u64(scan_time, 1000); | 2468 | __entry->scan_time = div_u64(scan_time, 1000); |
| 2472 | __entry->skip_precached = skip_precached; | ||
| 2473 | __entry->nr_skipped = nr_skipped; | 2469 | __entry->nr_skipped = nr_skipped; |
| 2474 | __entry->retried = retried; | 2470 | __entry->retried = retried; |
| 2475 | ), | 2471 | ), |
| 2476 | 2472 | ||
| 2477 | TP_printk("dev %d,%d nr_shrunk %d, scan_time %llu skip_precached %d " | 2473 | TP_printk("dev %d,%d nr_shrunk %d, scan_time %llu " |
| 2478 | "nr_skipped %d retried %d", | 2474 | "nr_skipped %d retried %d", |
| 2479 | MAJOR(__entry->dev), MINOR(__entry->dev), __entry->nr_shrunk, | 2475 | MAJOR(__entry->dev), MINOR(__entry->dev), __entry->nr_shrunk, |
| 2480 | __entry->scan_time, __entry->skip_precached, | 2476 | __entry->scan_time, __entry->nr_skipped, __entry->retried) |
| 2481 | __entry->nr_skipped, __entry->retried) | ||
| 2482 | ); | 2477 | ); |
| 2483 | 2478 | ||
| 2484 | #endif /* _TRACE_EXT4_H */ | 2479 | #endif /* _TRACE_EXT4_H */ |
diff --git a/include/trace/events/host1x.h b/include/trace/events/host1x.h index 94db6a2c3540..63116362543c 100644 --- a/include/trace/events/host1x.h +++ b/include/trace/events/host1x.h | |||
| @@ -29,6 +29,8 @@ | |||
| 29 | #include <linux/ktime.h> | 29 | #include <linux/ktime.h> |
| 30 | #include <linux/tracepoint.h> | 30 | #include <linux/tracepoint.h> |
| 31 | 31 | ||
| 32 | struct host1x_bo; | ||
| 33 | |||
| 32 | DECLARE_EVENT_CLASS(host1x, | 34 | DECLARE_EVENT_CLASS(host1x, |
| 33 | TP_PROTO(const char *name), | 35 | TP_PROTO(const char *name), |
| 34 | TP_ARGS(name), | 36 | TP_ARGS(name), |
| @@ -79,14 +81,14 @@ TRACE_EVENT(host1x_cdma_push, | |||
| 79 | ); | 81 | ); |
| 80 | 82 | ||
| 81 | TRACE_EVENT(host1x_cdma_push_gather, | 83 | TRACE_EVENT(host1x_cdma_push_gather, |
| 82 | TP_PROTO(const char *name, u32 mem_id, | 84 | TP_PROTO(const char *name, struct host1x_bo *bo, |
| 83 | u32 words, u32 offset, void *cmdbuf), | 85 | u32 words, u32 offset, void *cmdbuf), |
| 84 | 86 | ||
| 85 | TP_ARGS(name, mem_id, words, offset, cmdbuf), | 87 | TP_ARGS(name, bo, words, offset, cmdbuf), |
| 86 | 88 | ||
| 87 | TP_STRUCT__entry( | 89 | TP_STRUCT__entry( |
| 88 | __field(const char *, name) | 90 | __field(const char *, name) |
| 89 | __field(u32, mem_id) | 91 | __field(struct host1x_bo *, bo) |
| 90 | __field(u32, words) | 92 | __field(u32, words) |
| 91 | __field(u32, offset) | 93 | __field(u32, offset) |
| 92 | __field(bool, cmdbuf) | 94 | __field(bool, cmdbuf) |
| @@ -100,13 +102,13 @@ TRACE_EVENT(host1x_cdma_push_gather, | |||
| 100 | } | 102 | } |
| 101 | __entry->cmdbuf = cmdbuf; | 103 | __entry->cmdbuf = cmdbuf; |
| 102 | __entry->name = name; | 104 | __entry->name = name; |
| 103 | __entry->mem_id = mem_id; | 105 | __entry->bo = bo; |
| 104 | __entry->words = words; | 106 | __entry->words = words; |
| 105 | __entry->offset = offset; | 107 | __entry->offset = offset; |
| 106 | ), | 108 | ), |
| 107 | 109 | ||
| 108 | TP_printk("name=%s, mem_id=%08x, words=%u, offset=%d, contents=[%s]", | 110 | TP_printk("name=%s, bo=%p, words=%u, offset=%d, contents=[%s]", |
| 109 | __entry->name, __entry->mem_id, | 111 | __entry->name, __entry->bo, |
| 110 | __entry->words, __entry->offset, | 112 | __entry->words, __entry->offset, |
| 111 | __print_hex(__get_dynamic_array(cmdbuf), | 113 | __print_hex(__get_dynamic_array(cmdbuf), |
| 112 | __entry->cmdbuf ? __entry->words * 4 : 0)) | 114 | __entry->cmdbuf ? __entry->words * 4 : 0)) |
| @@ -221,12 +223,13 @@ TRACE_EVENT(host1x_syncpt_load_min, | |||
| 221 | ); | 223 | ); |
| 222 | 224 | ||
| 223 | TRACE_EVENT(host1x_syncpt_wait_check, | 225 | TRACE_EVENT(host1x_syncpt_wait_check, |
| 224 | TP_PROTO(void *mem_id, u32 offset, u32 syncpt_id, u32 thresh, u32 min), | 226 | TP_PROTO(struct host1x_bo *bo, u32 offset, u32 syncpt_id, u32 thresh, |
| 227 | u32 min), | ||
| 225 | 228 | ||
| 226 | TP_ARGS(mem_id, offset, syncpt_id, thresh, min), | 229 | TP_ARGS(bo, offset, syncpt_id, thresh, min), |
| 227 | 230 | ||
| 228 | TP_STRUCT__entry( | 231 | TP_STRUCT__entry( |
| 229 | __field(void *, mem_id) | 232 | __field(struct host1x_bo *, bo) |
| 230 | __field(u32, offset) | 233 | __field(u32, offset) |
| 231 | __field(u32, syncpt_id) | 234 | __field(u32, syncpt_id) |
| 232 | __field(u32, thresh) | 235 | __field(u32, thresh) |
| @@ -234,15 +237,15 @@ TRACE_EVENT(host1x_syncpt_wait_check, | |||
| 234 | ), | 237 | ), |
| 235 | 238 | ||
| 236 | TP_fast_assign( | 239 | TP_fast_assign( |
| 237 | __entry->mem_id = mem_id; | 240 | __entry->bo = bo; |
| 238 | __entry->offset = offset; | 241 | __entry->offset = offset; |
| 239 | __entry->syncpt_id = syncpt_id; | 242 | __entry->syncpt_id = syncpt_id; |
| 240 | __entry->thresh = thresh; | 243 | __entry->thresh = thresh; |
| 241 | __entry->min = min; | 244 | __entry->min = min; |
| 242 | ), | 245 | ), |
| 243 | 246 | ||
| 244 | TP_printk("mem_id=%p, offset=%05x, id=%d, thresh=%d, current=%d", | 247 | TP_printk("bo=%p, offset=%05x, id=%d, thresh=%d, current=%d", |
| 245 | __entry->mem_id, __entry->offset, | 248 | __entry->bo, __entry->offset, |
| 246 | __entry->syncpt_id, __entry->thresh, | 249 | __entry->syncpt_id, __entry->thresh, |
| 247 | __entry->min) | 250 | __entry->min) |
| 248 | ); | 251 | ); |
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index e335e7d8c6c2..c78e88ce5ea3 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h | |||
| @@ -36,7 +36,7 @@ TRACE_EVENT(rcu_utilization, | |||
| 36 | 36 | ||
| 37 | #ifdef CONFIG_RCU_TRACE | 37 | #ifdef CONFIG_RCU_TRACE |
| 38 | 38 | ||
| 39 | #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) | 39 | #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) |
| 40 | 40 | ||
| 41 | /* | 41 | /* |
| 42 | * Tracepoint for grace-period events. Takes a string identifying the | 42 | * Tracepoint for grace-period events. Takes a string identifying the |
| @@ -345,7 +345,7 @@ TRACE_EVENT(rcu_fqs, | |||
| 345 | __entry->cpu, __entry->qsevent) | 345 | __entry->cpu, __entry->qsevent) |
| 346 | ); | 346 | ); |
| 347 | 347 | ||
| 348 | #endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ | 348 | #endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU) */ |
| 349 | 349 | ||
| 350 | /* | 350 | /* |
| 351 | * Tracepoint for dyntick-idle entry/exit events. These take a string | 351 | * Tracepoint for dyntick-idle entry/exit events. These take a string |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 0a68d5ae584e..30fedaf3e56a 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
| @@ -97,16 +97,19 @@ static inline long __trace_sched_switch_state(struct task_struct *p) | |||
| 97 | long state = p->state; | 97 | long state = p->state; |
| 98 | 98 | ||
| 99 | #ifdef CONFIG_PREEMPT | 99 | #ifdef CONFIG_PREEMPT |
| 100 | #ifdef CONFIG_SCHED_DEBUG | ||
| 101 | BUG_ON(p != current); | ||
| 102 | #endif /* CONFIG_SCHED_DEBUG */ | ||
| 100 | /* | 103 | /* |
| 101 | * For all intents and purposes a preempted task is a running task. | 104 | * For all intents and purposes a preempted task is a running task. |
| 102 | */ | 105 | */ |
| 103 | if (task_preempt_count(p) & PREEMPT_ACTIVE) | 106 | if (preempt_count() & PREEMPT_ACTIVE) |
| 104 | state = TASK_RUNNING | TASK_STATE_MAX; | 107 | state = TASK_RUNNING | TASK_STATE_MAX; |
| 105 | #endif | 108 | #endif /* CONFIG_PREEMPT */ |
| 106 | 109 | ||
| 107 | return state; | 110 | return state; |
| 108 | } | 111 | } |
| 109 | #endif | 112 | #endif /* CREATE_TRACE_POINTS */ |
| 110 | 113 | ||
| 111 | /* | 114 | /* |
| 112 | * Tracepoint for task switches, performed by the scheduler: | 115 | * Tracepoint for task switches, performed by the scheduler: |
diff --git a/include/trace/events/scsi.h b/include/trace/events/scsi.h index db6c93510f74..079bd10a01b4 100644 --- a/include/trace/events/scsi.h +++ b/include/trace/events/scsi.h | |||
| @@ -94,7 +94,7 @@ | |||
| 94 | scsi_opcode_name(WRITE_16), \ | 94 | scsi_opcode_name(WRITE_16), \ |
| 95 | scsi_opcode_name(VERIFY_16), \ | 95 | scsi_opcode_name(VERIFY_16), \ |
| 96 | scsi_opcode_name(WRITE_SAME_16), \ | 96 | scsi_opcode_name(WRITE_SAME_16), \ |
| 97 | scsi_opcode_name(SERVICE_ACTION_IN), \ | 97 | scsi_opcode_name(SERVICE_ACTION_IN_16), \ |
| 98 | scsi_opcode_name(SAI_READ_CAPACITY_16), \ | 98 | scsi_opcode_name(SAI_READ_CAPACITY_16), \ |
| 99 | scsi_opcode_name(SAI_GET_LBA_STATUS), \ | 99 | scsi_opcode_name(SAI_GET_LBA_STATUS), \ |
| 100 | scsi_opcode_name(MI_REPORT_TARGET_PGS), \ | 100 | scsi_opcode_name(MI_REPORT_TARGET_PGS), \ |
diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index 1fef3e6e9436..b9c1dc6c825a 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h | |||
| @@ -6,6 +6,9 @@ | |||
| 6 | 6 | ||
| 7 | #include <linux/sunrpc/sched.h> | 7 | #include <linux/sunrpc/sched.h> |
| 8 | #include <linux/sunrpc/clnt.h> | 8 | #include <linux/sunrpc/clnt.h> |
| 9 | #include <linux/sunrpc/svc.h> | ||
| 10 | #include <linux/sunrpc/xprtsock.h> | ||
| 11 | #include <linux/sunrpc/svc_xprt.h> | ||
| 9 | #include <net/tcp_states.h> | 12 | #include <net/tcp_states.h> |
| 10 | #include <linux/net.h> | 13 | #include <linux/net.h> |
| 11 | #include <linux/tracepoint.h> | 14 | #include <linux/tracepoint.h> |
| @@ -306,6 +309,271 @@ DEFINE_RPC_SOCKET_EVENT_DONE(rpc_socket_reset_connection); | |||
| 306 | DEFINE_RPC_SOCKET_EVENT(rpc_socket_close); | 309 | DEFINE_RPC_SOCKET_EVENT(rpc_socket_close); |
| 307 | DEFINE_RPC_SOCKET_EVENT(rpc_socket_shutdown); | 310 | DEFINE_RPC_SOCKET_EVENT(rpc_socket_shutdown); |
| 308 | 311 | ||
| 312 | DECLARE_EVENT_CLASS(rpc_xprt_event, | ||
| 313 | TP_PROTO(struct rpc_xprt *xprt, __be32 xid, int status), | ||
| 314 | |||
| 315 | TP_ARGS(xprt, xid, status), | ||
| 316 | |||
| 317 | TP_STRUCT__entry( | ||
| 318 | __field(__be32, xid) | ||
| 319 | __field(int, status) | ||
| 320 | __string(addr, xprt->address_strings[RPC_DISPLAY_ADDR]) | ||
| 321 | __string(port, xprt->address_strings[RPC_DISPLAY_PORT]) | ||
| 322 | ), | ||
| 323 | |||
| 324 | TP_fast_assign( | ||
| 325 | __entry->xid = xid; | ||
| 326 | __entry->status = status; | ||
| 327 | __assign_str(addr, xprt->address_strings[RPC_DISPLAY_ADDR]); | ||
| 328 | __assign_str(port, xprt->address_strings[RPC_DISPLAY_PORT]); | ||
| 329 | ), | ||
| 330 | |||
| 331 | TP_printk("peer=[%s]:%s xid=0x%x status=%d", __get_str(addr), | ||
| 332 | __get_str(port), be32_to_cpu(__entry->xid), | ||
| 333 | __entry->status) | ||
| 334 | ); | ||
| 335 | |||
| 336 | DEFINE_EVENT(rpc_xprt_event, xprt_lookup_rqst, | ||
| 337 | TP_PROTO(struct rpc_xprt *xprt, __be32 xid, int status), | ||
| 338 | TP_ARGS(xprt, xid, status)); | ||
| 339 | |||
| 340 | DEFINE_EVENT(rpc_xprt_event, xprt_transmit, | ||
| 341 | TP_PROTO(struct rpc_xprt *xprt, __be32 xid, int status), | ||
| 342 | TP_ARGS(xprt, xid, status)); | ||
| 343 | |||
| 344 | DEFINE_EVENT(rpc_xprt_event, xprt_complete_rqst, | ||
| 345 | TP_PROTO(struct rpc_xprt *xprt, __be32 xid, int status), | ||
| 346 | TP_ARGS(xprt, xid, status)); | ||
| 347 | |||
| 348 | TRACE_EVENT(xs_tcp_data_ready, | ||
| 349 | TP_PROTO(struct rpc_xprt *xprt, int err, unsigned int total), | ||
| 350 | |||
| 351 | TP_ARGS(xprt, err, total), | ||
| 352 | |||
| 353 | TP_STRUCT__entry( | ||
| 354 | __field(int, err) | ||
| 355 | __field(unsigned int, total) | ||
| 356 | __string(addr, xprt ? xprt->address_strings[RPC_DISPLAY_ADDR] : | ||
| 357 | "(null)") | ||
| 358 | __string(port, xprt ? xprt->address_strings[RPC_DISPLAY_PORT] : | ||
| 359 | "(null)") | ||
| 360 | ), | ||
| 361 | |||
| 362 | TP_fast_assign( | ||
| 363 | __entry->err = err; | ||
| 364 | __entry->total = total; | ||
| 365 | __assign_str(addr, xprt ? | ||
| 366 | xprt->address_strings[RPC_DISPLAY_ADDR] : "(null)"); | ||
| 367 | __assign_str(port, xprt ? | ||
| 368 | xprt->address_strings[RPC_DISPLAY_PORT] : "(null)"); | ||
| 369 | ), | ||
| 370 | |||
| 371 | TP_printk("peer=[%s]:%s err=%d total=%u", __get_str(addr), | ||
| 372 | __get_str(port), __entry->err, __entry->total) | ||
| 373 | ); | ||
| 374 | |||
| 375 | #define rpc_show_sock_xprt_flags(flags) \ | ||
| 376 | __print_flags(flags, "|", \ | ||
| 377 | { TCP_RCV_LAST_FRAG, "TCP_RCV_LAST_FRAG" }, \ | ||
| 378 | { TCP_RCV_COPY_FRAGHDR, "TCP_RCV_COPY_FRAGHDR" }, \ | ||
| 379 | { TCP_RCV_COPY_XID, "TCP_RCV_COPY_XID" }, \ | ||
| 380 | { TCP_RCV_COPY_DATA, "TCP_RCV_COPY_DATA" }, \ | ||
| 381 | { TCP_RCV_READ_CALLDIR, "TCP_RCV_READ_CALLDIR" }, \ | ||
| 382 | { TCP_RCV_COPY_CALLDIR, "TCP_RCV_COPY_CALLDIR" }, \ | ||
| 383 | { TCP_RPC_REPLY, "TCP_RPC_REPLY" }) | ||
| 384 | |||
| 385 | TRACE_EVENT(xs_tcp_data_recv, | ||
| 386 | TP_PROTO(struct sock_xprt *xs), | ||
| 387 | |||
| 388 | TP_ARGS(xs), | ||
| 389 | |||
| 390 | TP_STRUCT__entry( | ||
| 391 | __string(addr, xs->xprt.address_strings[RPC_DISPLAY_ADDR]) | ||
| 392 | __string(port, xs->xprt.address_strings[RPC_DISPLAY_PORT]) | ||
| 393 | __field(__be32, xid) | ||
| 394 | __field(unsigned long, flags) | ||
| 395 | __field(unsigned long, copied) | ||
| 396 | __field(unsigned int, reclen) | ||
| 397 | __field(unsigned long, offset) | ||
| 398 | ), | ||
| 399 | |||
| 400 | TP_fast_assign( | ||
| 401 | __assign_str(addr, xs->xprt.address_strings[RPC_DISPLAY_ADDR]); | ||
| 402 | __assign_str(port, xs->xprt.address_strings[RPC_DISPLAY_PORT]); | ||
| 403 | __entry->xid = xs->tcp_xid; | ||
| 404 | __entry->flags = xs->tcp_flags; | ||
| 405 | __entry->copied = xs->tcp_copied; | ||
| 406 | __entry->reclen = xs->tcp_reclen; | ||
| 407 | __entry->offset = xs->tcp_offset; | ||
| 408 | ), | ||
| 409 | |||
| 410 | TP_printk("peer=[%s]:%s xid=0x%x flags=%s copied=%lu reclen=%u offset=%lu", | ||
| 411 | __get_str(addr), __get_str(port), be32_to_cpu(__entry->xid), | ||
| 412 | rpc_show_sock_xprt_flags(__entry->flags), | ||
| 413 | __entry->copied, __entry->reclen, __entry->offset) | ||
| 414 | ); | ||
| 415 | |||
| 416 | #define show_rqstp_flags(flags) \ | ||
| 417 | __print_flags(flags, "|", \ | ||
| 418 | { (1UL << RQ_SECURE), "RQ_SECURE"}, \ | ||
| 419 | { (1UL << RQ_LOCAL), "RQ_LOCAL"}, \ | ||
| 420 | { (1UL << RQ_USEDEFERRAL), "RQ_USEDEFERRAL"}, \ | ||
| 421 | { (1UL << RQ_DROPME), "RQ_DROPME"}, \ | ||
| 422 | { (1UL << RQ_SPLICE_OK), "RQ_SPLICE_OK"}, \ | ||
| 423 | { (1UL << RQ_VICTIM), "RQ_VICTIM"}, \ | ||
| 424 | { (1UL << RQ_BUSY), "RQ_BUSY"}) | ||
| 425 | |||
| 426 | TRACE_EVENT(svc_recv, | ||
| 427 | TP_PROTO(struct svc_rqst *rqst, int status), | ||
| 428 | |||
| 429 | TP_ARGS(rqst, status), | ||
| 430 | |||
| 431 | TP_STRUCT__entry( | ||
| 432 | __field(struct sockaddr *, addr) | ||
| 433 | __field(__be32, xid) | ||
| 434 | __field(int, status) | ||
| 435 | __field(unsigned long, flags) | ||
| 436 | ), | ||
| 437 | |||
| 438 | TP_fast_assign( | ||
| 439 | __entry->addr = (struct sockaddr *)&rqst->rq_addr; | ||
| 440 | __entry->xid = status > 0 ? rqst->rq_xid : 0; | ||
| 441 | __entry->status = status; | ||
| 442 | __entry->flags = rqst->rq_flags; | ||
| 443 | ), | ||
| 444 | |||
| 445 | TP_printk("addr=%pIScp xid=0x%x status=%d flags=%s", __entry->addr, | ||
| 446 | be32_to_cpu(__entry->xid), __entry->status, | ||
| 447 | show_rqstp_flags(__entry->flags)) | ||
| 448 | ); | ||
| 449 | |||
| 450 | DECLARE_EVENT_CLASS(svc_rqst_status, | ||
| 451 | |||
| 452 | TP_PROTO(struct svc_rqst *rqst, int status), | ||
| 453 | |||
| 454 | TP_ARGS(rqst, status), | ||
| 455 | |||
| 456 | TP_STRUCT__entry( | ||
| 457 | __field(struct sockaddr *, addr) | ||
| 458 | __field(__be32, xid) | ||
| 459 | __field(int, dropme) | ||
| 460 | __field(int, status) | ||
| 461 | __field(unsigned long, flags) | ||
| 462 | ), | ||
| 463 | |||
| 464 | TP_fast_assign( | ||
| 465 | __entry->addr = (struct sockaddr *)&rqst->rq_addr; | ||
| 466 | __entry->xid = rqst->rq_xid; | ||
| 467 | __entry->status = status; | ||
| 468 | __entry->flags = rqst->rq_flags; | ||
| 469 | ), | ||
| 470 | |||
| 471 | TP_printk("addr=%pIScp rq_xid=0x%x status=%d flags=%s", | ||
| 472 | __entry->addr, be32_to_cpu(__entry->xid), | ||
| 473 | __entry->status, show_rqstp_flags(__entry->flags)) | ||
| 474 | ); | ||
| 475 | |||
| 476 | DEFINE_EVENT(svc_rqst_status, svc_process, | ||
| 477 | TP_PROTO(struct svc_rqst *rqst, int status), | ||
| 478 | TP_ARGS(rqst, status)); | ||
| 479 | |||
| 480 | DEFINE_EVENT(svc_rqst_status, svc_send, | ||
| 481 | TP_PROTO(struct svc_rqst *rqst, int status), | ||
| 482 | TP_ARGS(rqst, status)); | ||
| 483 | |||
| 484 | #define show_svc_xprt_flags(flags) \ | ||
| 485 | __print_flags(flags, "|", \ | ||
| 486 | { (1UL << XPT_BUSY), "XPT_BUSY"}, \ | ||
| 487 | { (1UL << XPT_CONN), "XPT_CONN"}, \ | ||
| 488 | { (1UL << XPT_CLOSE), "XPT_CLOSE"}, \ | ||
| 489 | { (1UL << XPT_DATA), "XPT_DATA"}, \ | ||
| 490 | { (1UL << XPT_TEMP), "XPT_TEMP"}, \ | ||
| 491 | { (1UL << XPT_DEAD), "XPT_DEAD"}, \ | ||
| 492 | { (1UL << XPT_CHNGBUF), "XPT_CHNGBUF"}, \ | ||
| 493 | { (1UL << XPT_DEFERRED), "XPT_DEFERRED"}, \ | ||
| 494 | { (1UL << XPT_OLD), "XPT_OLD"}, \ | ||
| 495 | { (1UL << XPT_LISTENER), "XPT_LISTENER"}, \ | ||
| 496 | { (1UL << XPT_CACHE_AUTH), "XPT_CACHE_AUTH"}, \ | ||
| 497 | { (1UL << XPT_LOCAL), "XPT_LOCAL"}) | ||
| 498 | |||
| 499 | TRACE_EVENT(svc_xprt_do_enqueue, | ||
| 500 | TP_PROTO(struct svc_xprt *xprt, struct svc_rqst *rqst), | ||
| 501 | |||
| 502 | TP_ARGS(xprt, rqst), | ||
| 503 | |||
| 504 | TP_STRUCT__entry( | ||
| 505 | __field(struct svc_xprt *, xprt) | ||
| 506 | __field(struct svc_rqst *, rqst) | ||
| 507 | ), | ||
| 508 | |||
| 509 | TP_fast_assign( | ||
| 510 | __entry->xprt = xprt; | ||
| 511 | __entry->rqst = rqst; | ||
| 512 | ), | ||
| 513 | |||
| 514 | TP_printk("xprt=0x%p addr=%pIScp pid=%d flags=%s", __entry->xprt, | ||
| 515 | (struct sockaddr *)&__entry->xprt->xpt_remote, | ||
| 516 | __entry->rqst ? __entry->rqst->rq_task->pid : 0, | ||
| 517 | show_svc_xprt_flags(__entry->xprt->xpt_flags)) | ||
| 518 | ); | ||
| 519 | |||
| 520 | TRACE_EVENT(svc_xprt_dequeue, | ||
| 521 | TP_PROTO(struct svc_xprt *xprt), | ||
| 522 | |||
| 523 | TP_ARGS(xprt), | ||
| 524 | |||
| 525 | TP_STRUCT__entry( | ||
| 526 | __field(struct svc_xprt *, xprt) | ||
| 527 | __field_struct(struct sockaddr_storage, ss) | ||
| 528 | __field(unsigned long, flags) | ||
| 529 | ), | ||
| 530 | |||
| 531 | TP_fast_assign( | ||
| 532 | __entry->xprt = xprt, | ||
| 533 | xprt ? memcpy(&__entry->ss, &xprt->xpt_remote, sizeof(__entry->ss)) : memset(&__entry->ss, 0, sizeof(__entry->ss)); | ||
| 534 | __entry->flags = xprt ? xprt->xpt_flags : 0; | ||
| 535 | ), | ||
| 536 | |||
| 537 | TP_printk("xprt=0x%p addr=%pIScp flags=%s", __entry->xprt, | ||
| 538 | (struct sockaddr *)&__entry->ss, | ||
| 539 | show_svc_xprt_flags(__entry->flags)) | ||
| 540 | ); | ||
| 541 | |||
| 542 | TRACE_EVENT(svc_wake_up, | ||
| 543 | TP_PROTO(int pid), | ||
| 544 | |||
| 545 | TP_ARGS(pid), | ||
| 546 | |||
| 547 | TP_STRUCT__entry( | ||
| 548 | __field(int, pid) | ||
| 549 | ), | ||
| 550 | |||
| 551 | TP_fast_assign( | ||
| 552 | __entry->pid = pid; | ||
| 553 | ), | ||
| 554 | |||
| 555 | TP_printk("pid=%d", __entry->pid) | ||
| 556 | ); | ||
| 557 | |||
| 558 | TRACE_EVENT(svc_handle_xprt, | ||
| 559 | TP_PROTO(struct svc_xprt *xprt, int len), | ||
| 560 | |||
| 561 | TP_ARGS(xprt, len), | ||
| 562 | |||
| 563 | TP_STRUCT__entry( | ||
| 564 | __field(struct svc_xprt *, xprt) | ||
| 565 | __field(int, len) | ||
| 566 | ), | ||
| 567 | |||
| 568 | TP_fast_assign( | ||
| 569 | __entry->xprt = xprt; | ||
| 570 | __entry->len = len; | ||
| 571 | ), | ||
| 572 | |||
| 573 | TP_printk("xprt=0x%p addr=%pIScp len=%d flags=%s", __entry->xprt, | ||
| 574 | (struct sockaddr *)&__entry->xprt->xpt_remote, __entry->len, | ||
| 575 | show_svc_xprt_flags(__entry->xprt->xpt_flags)) | ||
| 576 | ); | ||
| 309 | #endif /* _TRACE_SUNRPC_H */ | 577 | #endif /* _TRACE_SUNRPC_H */ |
| 310 | 578 | ||
| 311 | #include <trace/define_trace.h> | 579 | #include <trace/define_trace.h> |
diff --git a/include/trace/events/target.h b/include/trace/events/target.h index da9cc0f05c93..45403443dd82 100644 --- a/include/trace/events/target.h +++ b/include/trace/events/target.h | |||
| @@ -96,7 +96,7 @@ | |||
| 96 | scsi_opcode_name(WRITE_16), \ | 96 | scsi_opcode_name(WRITE_16), \ |
| 97 | scsi_opcode_name(VERIFY_16), \ | 97 | scsi_opcode_name(VERIFY_16), \ |
| 98 | scsi_opcode_name(WRITE_SAME_16), \ | 98 | scsi_opcode_name(WRITE_SAME_16), \ |
| 99 | scsi_opcode_name(SERVICE_ACTION_IN), \ | 99 | scsi_opcode_name(SERVICE_ACTION_IN_16), \ |
| 100 | scsi_opcode_name(SAI_READ_CAPACITY_16), \ | 100 | scsi_opcode_name(SAI_READ_CAPACITY_16), \ |
| 101 | scsi_opcode_name(SAI_GET_LBA_STATUS), \ | 101 | scsi_opcode_name(SAI_GET_LBA_STATUS), \ |
| 102 | scsi_opcode_name(MI_REPORT_TARGET_PGS), \ | 102 | scsi_opcode_name(MI_REPORT_TARGET_PGS), \ |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 26b4f2e13275..139b5067345b 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
| @@ -277,14 +277,12 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags, \ | |||
| 277 | field = (typeof(field))iter->ent; \ | 277 | field = (typeof(field))iter->ent; \ |
| 278 | \ | 278 | \ |
| 279 | ret = ftrace_raw_output_prep(iter, trace_event); \ | 279 | ret = ftrace_raw_output_prep(iter, trace_event); \ |
| 280 | if (ret) \ | 280 | if (ret != TRACE_TYPE_HANDLED) \ |
| 281 | return ret; \ | 281 | return ret; \ |
| 282 | \ | 282 | \ |
| 283 | ret = trace_seq_printf(s, print); \ | 283 | trace_seq_printf(s, print); \ |
| 284 | if (!ret) \ | ||
| 285 | return TRACE_TYPE_PARTIAL_LINE; \ | ||
| 286 | \ | 284 | \ |
| 287 | return TRACE_TYPE_HANDLED; \ | 285 | return trace_handle_return(s); \ |
| 288 | } \ | 286 | } \ |
| 289 | static struct trace_event_functions ftrace_event_type_funcs_##call = { \ | 287 | static struct trace_event_functions ftrace_event_type_funcs_##call = { \ |
| 290 | .trace = ftrace_raw_output_##call, \ | 288 | .trace = ftrace_raw_output_##call, \ |
