diff options
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/define_trace.h | 14 | ||||
-rw-r--r-- | include/trace/events/avc.h | 53 | ||||
-rw-r--r-- | include/trace/events/bcache.h | 4 | ||||
-rw-r--r-- | include/trace/events/btrfs.h | 28 | ||||
-rw-r--r-- | include/trace/events/devlink.h | 37 | ||||
-rw-r--r-- | include/trace/events/filelock.h | 8 | ||||
-rw-r--r-- | include/trace/events/hswadsp.h | 385 | ||||
-rw-r--r-- | include/trace/events/iocost.h | 67 | ||||
-rw-r--r-- | include/trace/events/mmflags.h | 9 | ||||
-rw-r--r-- | include/trace/events/rxrpc.h | 35 | ||||
-rw-r--r-- | include/trace/events/sched.h | 4 | ||||
-rw-r--r-- | include/trace/events/target.h | 12 | ||||
-rw-r--r-- | include/trace/events/xen.h | 20 |
13 files changed, 191 insertions, 485 deletions
diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h index bd75f97867b9..00723935dcc7 100644 --- a/include/trace/define_trace.h +++ b/include/trace/define_trace.h @@ -25,7 +25,7 @@ #undef TRACE_EVENT #define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ - DEFINE_TRACE(name) + DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) #undef TRACE_EVENT_CONDITION #define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \ @@ -39,12 +39,12 @@ #undef TRACE_EVENT_FN #define TRACE_EVENT_FN(name, proto, args, tstruct, \ assign, print, reg, unreg) \ - DEFINE_TRACE_FN(name, reg, unreg) + DEFINE_TRACE_FN(name, reg, unreg, PARAMS(proto), PARAMS(args)) #undef TRACE_EVENT_FN_COND #define TRACE_EVENT_FN_COND(name, proto, args, cond, tstruct, \ assign, print, reg, unreg) \ - DEFINE_TRACE_FN(name, reg, unreg) + DEFINE_TRACE_FN(name, reg, unreg, PARAMS(proto), PARAMS(args)) #undef TRACE_EVENT_NOP #define TRACE_EVENT_NOP(name, proto, args, struct, assign, print) @@ -54,15 +54,15 @@ #undef DEFINE_EVENT #define DEFINE_EVENT(template, name, proto, args) \ - DEFINE_TRACE(name) + DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) #undef DEFINE_EVENT_FN #define DEFINE_EVENT_FN(template, name, proto, args, reg, unreg) \ - DEFINE_TRACE_FN(name, reg, unreg) + DEFINE_TRACE_FN(name, reg, unreg, PARAMS(proto), PARAMS(args)) #undef DEFINE_EVENT_PRINT #define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ - DEFINE_TRACE(name) + DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) #undef DEFINE_EVENT_CONDITION #define DEFINE_EVENT_CONDITION(template, name, proto, args, cond) \ @@ -70,7 +70,7 @@ #undef DECLARE_TRACE #define DECLARE_TRACE(name, proto, args) \ - DEFINE_TRACE(name) + DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) #undef TRACE_INCLUDE #undef __TRACE_INCLUDE diff --git a/include/trace/events/avc.h b/include/trace/events/avc.h new file mode 100644 index 000000000000..b55fda2e0773 --- /dev/null +++ b/include/trace/events/avc.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Authors: ThiƩbaud Weksteen <tweek@google.com> + * Peter Enderborg <Peter.Enderborg@sony.com> + */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM avc + +#if !defined(_TRACE_SELINUX_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SELINUX_H + +#include <linux/tracepoint.h> + +TRACE_EVENT(selinux_audited, + + TP_PROTO(struct selinux_audit_data *sad, + char *scontext, + char *tcontext, + const char *tclass + ), + + TP_ARGS(sad, scontext, tcontext, tclass), + + TP_STRUCT__entry( + __field(u32, requested) + __field(u32, denied) + __field(u32, audited) + __field(int, result) + __string(scontext, scontext) + __string(tcontext, tcontext) + __string(tclass, tclass) + ), + + TP_fast_assign( + __entry->requested = sad->requested; + __entry->denied = sad->denied; + __entry->audited = sad->audited; + __entry->result = sad->result; + __assign_str(tcontext, tcontext); + __assign_str(scontext, scontext); + __assign_str(tclass, tclass); + ), + + TP_printk("requested=0x%x denied=0x%x audited=0x%x result=%d scontext=%s tcontext=%s tclass=%s", + __entry->requested, __entry->denied, __entry->audited, __entry->result, + __get_str(scontext), __get_str(tcontext), __get_str(tclass) + ) +); + +#endif + +/* This part must be outside protection */ +#include <trace/define_trace.h> diff --git a/include/trace/events/bcache.h b/include/trace/events/bcache.h index 0bddea663b3b..e41c611d6d3b 100644 --- a/include/trace/events/bcache.h +++ b/include/trace/events/bcache.h @@ -164,7 +164,7 @@ TRACE_EVENT(bcache_write, ), TP_fast_assign( - memcpy(__entry->uuid, c->sb.set_uuid, 16); + memcpy(__entry->uuid, c->set_uuid, 16); __entry->inode = inode; __entry->sector = bio->bi_iter.bi_sector; __entry->nr_sector = bio->bi_iter.bi_size >> 9; @@ -200,7 +200,7 @@ DECLARE_EVENT_CLASS(cache_set, ), TP_fast_assign( - memcpy(__entry->uuid, c->sb.set_uuid, 16); + memcpy(__entry->uuid, c->set_uuid, 16); ), TP_printk("%pU", __entry->uuid) diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index 863335ecb7e8..ecd24c719de4 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h @@ -79,6 +79,7 @@ struct btrfs_space_info; #define IO_TREE_OWNER \ EM( IO_TREE_FS_PINNED_EXTENTS, "PINNED_EXTENTS") \ EM( IO_TREE_FS_EXCLUDED_EXTENTS, "EXCLUDED_EXTENTS") \ + EM( IO_TREE_BTREE_INODE_IO, "BTREE_INODE_IO") \ EM( IO_TREE_INODE_IO, "INODE_IO") \ EM( IO_TREE_INODE_IO_FAILURE, "INODE_IO_FAILURE") \ EM( IO_TREE_RELOC_BLOCKS, "RELOC_BLOCKS") \ @@ -510,7 +511,7 @@ DEFINE_EVENT( DECLARE_EVENT_CLASS(btrfs__ordered_extent, - TP_PROTO(const struct inode *inode, + TP_PROTO(const struct btrfs_inode *inode, const struct btrfs_ordered_extent *ordered), TP_ARGS(inode, ordered), @@ -529,8 +530,8 @@ DECLARE_EVENT_CLASS(btrfs__ordered_extent, __field( u64, truncated_len ) ), - TP_fast_assign_btrfs(btrfs_sb(inode->i_sb), - __entry->ino = btrfs_ino(BTRFS_I(inode)); + TP_fast_assign_btrfs(inode->root->fs_info, + __entry->ino = btrfs_ino(inode); __entry->file_offset = ordered->file_offset; __entry->start = ordered->disk_bytenr; __entry->len = ordered->num_bytes; @@ -539,8 +540,7 @@ DECLARE_EVENT_CLASS(btrfs__ordered_extent, __entry->flags = ordered->flags; __entry->compress_type = ordered->compress_type; __entry->refs = refcount_read(&ordered->refs); - __entry->root_objectid = - BTRFS_I(inode)->root->root_key.objectid; + __entry->root_objectid = inode->root->root_key.objectid; __entry->truncated_len = ordered->truncated_len; ), @@ -563,7 +563,7 @@ DECLARE_EVENT_CLASS(btrfs__ordered_extent, DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, - TP_PROTO(const struct inode *inode, + TP_PROTO(const struct btrfs_inode *inode, const struct btrfs_ordered_extent *ordered), TP_ARGS(inode, ordered) @@ -571,7 +571,7 @@ DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, - TP_PROTO(const struct inode *inode, + TP_PROTO(const struct btrfs_inode *inode, const struct btrfs_ordered_extent *ordered), TP_ARGS(inode, ordered) @@ -579,7 +579,7 @@ DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, - TP_PROTO(const struct inode *inode, + TP_PROTO(const struct btrfs_inode *inode, const struct btrfs_ordered_extent *ordered), TP_ARGS(inode, ordered) @@ -587,7 +587,7 @@ DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put, - TP_PROTO(const struct inode *inode, + TP_PROTO(const struct btrfs_inode *inode, const struct btrfs_ordered_extent *ordered), TP_ARGS(inode, ordered) @@ -1176,25 +1176,27 @@ DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free, TRACE_EVENT(find_free_extent, - TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, + TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size, u64 data), - TP_ARGS(fs_info, num_bytes, empty_size, data), + TP_ARGS(root, num_bytes, empty_size, data), TP_STRUCT__entry_btrfs( + __field( u64, root_objectid ) __field( u64, num_bytes ) __field( u64, empty_size ) __field( u64, data ) ), - TP_fast_assign_btrfs(fs_info, + TP_fast_assign_btrfs(root->fs_info, + __entry->root_objectid = root->root_key.objectid; __entry->num_bytes = num_bytes; __entry->empty_size = empty_size; __entry->data = data; ), TP_printk_btrfs("root=%llu(%s) len=%llu empty_size=%llu flags=%llu(%s)", - show_root_type(BTRFS_EXTENT_TREE_OBJECTID), + show_root_type(__entry->root_objectid), __entry->num_bytes, __entry->empty_size, __entry->data, __print_flags((unsigned long)__entry->data, "|", BTRFS_GROUP_FLAGS)) diff --git a/include/trace/events/devlink.h b/include/trace/events/devlink.h index 6f60a78d9a7e..44d8e2981065 100644 --- a/include/trace/events/devlink.h +++ b/include/trace/events/devlink.h @@ -171,6 +171,43 @@ TRACE_EVENT(devlink_health_reporter_state_update, __entry->new_state) ); +/* + * Tracepoint for devlink packet trap: + */ +TRACE_EVENT(devlink_trap_report, + TP_PROTO(const struct devlink *devlink, struct sk_buff *skb, + const struct devlink_trap_metadata *metadata), + + TP_ARGS(devlink, skb, metadata), + + TP_STRUCT__entry( + __string(bus_name, devlink->dev->bus->name) + __string(dev_name, dev_name(devlink->dev)) + __string(driver_name, devlink->dev->driver->name) + __string(trap_name, metadata->trap_name) + __string(trap_group_name, metadata->trap_group_name) + __dynamic_array(char, input_dev_name, IFNAMSIZ) + ), + + TP_fast_assign( + struct net_device *input_dev = metadata->input_dev; + + __assign_str(bus_name, devlink->dev->bus->name); + __assign_str(dev_name, dev_name(devlink->dev)); + __assign_str(driver_name, devlink->dev->driver->name); + __assign_str(trap_name, metadata->trap_name); + __assign_str(trap_group_name, metadata->trap_group_name); + __assign_str(input_dev_name, + (input_dev ? input_dev->name : "NULL")); + ), + + TP_printk("bus_name=%s dev_name=%s driver_name=%s trap_name=%s " + "trap_group_name=%s input_dev_name=%s", __get_str(bus_name), + __get_str(dev_name), __get_str(driver_name), + __get_str(trap_name), __get_str(trap_group_name), + __get_str(input_dev_name)) +); + #endif /* _TRACE_DEVLINK_H */ /* This part must be outside protection */ diff --git a/include/trace/events/filelock.h b/include/trace/events/filelock.h index c705e4944a50..1646dadd7f37 100644 --- a/include/trace/events/filelock.h +++ b/include/trace/events/filelock.h @@ -92,7 +92,7 @@ DECLARE_EVENT_CLASS(filelock_lock, __entry->ret = ret; ), - TP_printk("fl=0x%p dev=0x%x:0x%x ino=0x%lx fl_blocker=0x%p fl_owner=0x%p fl_pid=%u fl_flags=%s fl_type=%s fl_start=%lld fl_end=%lld ret=%d", + TP_printk("fl=%p dev=0x%x:0x%x ino=0x%lx fl_blocker=%p fl_owner=%p fl_pid=%u fl_flags=%s fl_type=%s fl_start=%lld fl_end=%lld ret=%d", __entry->fl, MAJOR(__entry->s_dev), MINOR(__entry->s_dev), __entry->i_ino, __entry->fl_blocker, __entry->fl_owner, __entry->fl_pid, show_fl_flags(__entry->fl_flags), @@ -145,7 +145,7 @@ DECLARE_EVENT_CLASS(filelock_lease, __entry->fl_downgrade_time = fl ? fl->fl_downgrade_time : 0; ), - TP_printk("fl=0x%p dev=0x%x:0x%x ino=0x%lx fl_blocker=0x%p fl_owner=0x%p fl_flags=%s fl_type=%s fl_break_time=%lu fl_downgrade_time=%lu", + TP_printk("fl=%p dev=0x%x:0x%x ino=0x%lx fl_blocker=%p fl_owner=%p fl_flags=%s fl_type=%s fl_break_time=%lu fl_downgrade_time=%lu", __entry->fl, MAJOR(__entry->s_dev), MINOR(__entry->s_dev), __entry->i_ino, __entry->fl_blocker, __entry->fl_owner, show_fl_flags(__entry->fl_flags), @@ -195,7 +195,7 @@ TRACE_EVENT(generic_add_lease, __entry->fl_type = fl->fl_type; ), - TP_printk("dev=0x%x:0x%x ino=0x%lx wcount=%d rcount=%d icount=%d fl_owner=0x%p fl_flags=%s fl_type=%s", + TP_printk("dev=0x%x:0x%x ino=0x%lx wcount=%d rcount=%d icount=%d fl_owner=%p fl_flags=%s fl_type=%s", MAJOR(__entry->s_dev), MINOR(__entry->s_dev), __entry->i_ino, __entry->wcount, __entry->rcount, __entry->icount, __entry->fl_owner, @@ -228,7 +228,7 @@ TRACE_EVENT(leases_conflict, __entry->conflict = conflict; ), - TP_printk("conflict %d: lease=0x%p fl_flags=%s fl_type=%s; breaker=0x%p fl_flags=%s fl_type=%s", + TP_printk("conflict %d: lease=%p fl_flags=%s fl_type=%s; breaker=%p fl_flags=%s fl_type=%s", __entry->conflict, __entry->lease, show_fl_flags(__entry->l_fl_flags), diff --git a/include/trace/events/hswadsp.h b/include/trace/events/hswadsp.h deleted file mode 100644 index 939d7a09d73f..000000000000 --- a/include/trace/events/hswadsp.h +++ /dev/null @@ -1,385 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#undef TRACE_SYSTEM -#define TRACE_SYSTEM hswadsp - -#if !defined(_TRACE_HSWADSP_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_HSWADSP_H - -#include <linux/types.h> -#include <linux/ktime.h> -#include <linux/tracepoint.h> - -struct sst_hsw; -struct sst_hsw_stream; -struct sst_hsw_ipc_stream_free_req; -struct sst_hsw_ipc_volume_req; -struct sst_hsw_ipc_stream_alloc_req; -struct sst_hsw_audio_data_format_ipc; -struct sst_hsw_ipc_stream_info_reply; -struct sst_hsw_ipc_device_config_req; - -DECLARE_EVENT_CLASS(sst_irq, - - TP_PROTO(uint32_t status, uint32_t mask), - - TP_ARGS(status, mask), - - TP_STRUCT__entry( - __field( unsigned int, status ) - __field( unsigned int, mask ) - ), - - TP_fast_assign( - __entry->status = status; - __entry->mask = mask; - ), - - TP_printk("status 0x%8.8x mask 0x%8.8x", - (unsigned int)__entry->status, (unsigned int)__entry->mask) -); - -DEFINE_EVENT(sst_irq, sst_irq_busy, - - TP_PROTO(unsigned int status, unsigned int mask), - - TP_ARGS(status, mask) - -); - -DEFINE_EVENT(sst_irq, sst_irq_done, - - TP_PROTO(unsigned int status, unsigned int mask), - - TP_ARGS(status, mask) - -); - -DECLARE_EVENT_CLASS(ipc, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val), - - TP_STRUCT__entry( - __string( name, name ) - __field( unsigned int, val ) - ), - - TP_fast_assign( - __assign_str(name, name); - __entry->val = val; - ), - - TP_printk("%s 0x%8.8x", __get_str(name), (unsigned int)__entry->val) - -); - -DEFINE_EVENT(ipc, ipc_request, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val) - -); - -DEFINE_EVENT(ipc, ipc_reply, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val) - -); - -DEFINE_EVENT(ipc, ipc_pending_reply, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val) - -); - -DEFINE_EVENT(ipc, ipc_notification, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val) - -); - -DEFINE_EVENT(ipc, ipc_error, - - TP_PROTO(const char *name, int val), - - TP_ARGS(name, val) - -); - -DECLARE_EVENT_CLASS(stream_position, - - TP_PROTO(unsigned int id, unsigned int pos), - - TP_ARGS(id, pos), - - TP_STRUCT__entry( - __field( unsigned int, id ) - __field( unsigned int, pos ) - ), - - TP_fast_assign( - __entry->id = id; - __entry->pos = pos; - ), - - TP_printk("id %d position 0x%x", - (unsigned int)__entry->id, (unsigned int)__entry->pos) -); - -DEFINE_EVENT(stream_position, stream_read_position, - - TP_PROTO(unsigned int id, unsigned int pos), - - TP_ARGS(id, pos) - -); - -DEFINE_EVENT(stream_position, stream_write_position, - - TP_PROTO(unsigned int id, unsigned int pos), - - TP_ARGS(id, pos) - -); - -TRACE_EVENT(hsw_stream_buffer, - - TP_PROTO(struct sst_hsw_stream *stream), - - TP_ARGS(stream), - - TP_STRUCT__entry( - __field( int, id ) - __field( int, pt_addr ) - __field( int, num_pages ) - __field( int, ring_size ) - __field( int, ring_offset ) - __field( int, first_pfn ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->pt_addr = stream->request.ringinfo.ring_pt_address; - __entry->num_pages = stream->request.ringinfo.num_pages; - __entry->ring_size = stream->request.ringinfo.ring_size; - __entry->ring_offset = stream->request.ringinfo.ring_offset; - __entry->first_pfn = stream->request.ringinfo.ring_first_pfn; - ), - - TP_printk("stream %d ring addr 0x%x pages %d size 0x%x offset 0x%x PFN 0x%x", - (int) __entry->id, (int)__entry->pt_addr, - (int)__entry->num_pages, (int)__entry->ring_size, - (int)__entry->ring_offset, (int)__entry->first_pfn) -); - -TRACE_EVENT(hsw_stream_alloc_reply, - - TP_PROTO(struct sst_hsw_stream *stream), - - TP_ARGS(stream), - - TP_STRUCT__entry( - __field( int, id ) - __field( int, stream_id ) - __field( int, mixer_id ) - __field( int, peak0 ) - __field( int, peak1 ) - __field( int, vol0 ) - __field( int, vol1 ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->stream_id = stream->reply.stream_hw_id; - __entry->mixer_id = stream->reply.mixer_hw_id; - __entry->peak0 = stream->reply.peak_meter_register_address[0]; - __entry->peak1 = stream->reply.peak_meter_register_address[1]; - __entry->vol0 = stream->reply.volume_register_address[0]; - __entry->vol1 = stream->reply.volume_register_address[1]; - ), - - TP_printk("stream %d hw id %d mixer %d peak 0x%x:0x%x vol 0x%x,0x%x", - (int) __entry->id, (int) __entry->stream_id, (int)__entry->mixer_id, - (int)__entry->peak0, (int)__entry->peak1, - (int)__entry->vol0, (int)__entry->vol1) -); - -TRACE_EVENT(hsw_mixer_info_reply, - - TP_PROTO(struct sst_hsw_ipc_stream_info_reply *reply), - - TP_ARGS(reply), - - TP_STRUCT__entry( - __field( int, mixer_id ) - __field( int, peak0 ) - __field( int, peak1 ) - __field( int, vol0 ) - __field( int, vol1 ) - ), - - TP_fast_assign( - __entry->mixer_id = reply->mixer_hw_id; - __entry->peak0 = reply->peak_meter_register_address[0]; - __entry->peak1 = reply->peak_meter_register_address[1]; - __entry->vol0 = reply->volume_register_address[0]; - __entry->vol1 = reply->volume_register_address[1]; - ), - - TP_printk("mixer id %d peak 0x%x:0x%x vol 0x%x,0x%x", - (int)__entry->mixer_id, - (int)__entry->peak0, (int)__entry->peak1, - (int)__entry->vol0, (int)__entry->vol1) -); - -TRACE_EVENT(hsw_stream_data_format, - - TP_PROTO(struct sst_hsw_stream *stream, - struct sst_hsw_audio_data_format_ipc *req), - - TP_ARGS(stream, req), - - TP_STRUCT__entry( - __field( uint32_t, id ) - __field( uint32_t, frequency ) - __field( uint32_t, bitdepth ) - __field( uint32_t, map ) - __field( uint32_t, config ) - __field( uint32_t, style ) - __field( uint8_t, ch_num ) - __field( uint8_t, valid_bit ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->frequency = req->frequency; - __entry->bitdepth = req->bitdepth; - __entry->map = req->map; - __entry->config = req->config; - __entry->style = req->style; - __entry->ch_num = req->ch_num; - __entry->valid_bit = req->valid_bit; - ), - - TP_printk("stream %d freq %d depth %d map 0x%x config 0x%x style 0x%x ch %d bits %d", - (int) __entry->id, (uint32_t)__entry->frequency, - (uint32_t)__entry->bitdepth, (uint32_t)__entry->map, - (uint32_t)__entry->config, (uint32_t)__entry->style, - (uint8_t)__entry->ch_num, (uint8_t)__entry->valid_bit) -); - -TRACE_EVENT(hsw_stream_alloc_request, - - TP_PROTO(struct sst_hsw_stream *stream, - struct sst_hsw_ipc_stream_alloc_req *req), - - TP_ARGS(stream, req), - - TP_STRUCT__entry( - __field( uint32_t, id ) - __field( uint8_t, path_id ) - __field( uint8_t, stream_type ) - __field( uint8_t, format_id ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->path_id = req->path_id; - __entry->stream_type = req->stream_type; - __entry->format_id = req->format_id; - ), - - TP_printk("stream %d path %d type %d format %d", - (int) __entry->id, (uint8_t)__entry->path_id, - (uint8_t)__entry->stream_type, (uint8_t)__entry->format_id) -); - -TRACE_EVENT(hsw_stream_free_req, - - TP_PROTO(struct sst_hsw_stream *stream, - struct sst_hsw_ipc_stream_free_req *req), - - TP_ARGS(stream, req), - - TP_STRUCT__entry( - __field( int, id ) - __field( int, stream_id ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->stream_id = req->stream_id; - ), - - TP_printk("stream %d hw id %d", - (int) __entry->id, (int) __entry->stream_id) -); - -TRACE_EVENT(hsw_volume_req, - - TP_PROTO(struct sst_hsw_stream *stream, - struct sst_hsw_ipc_volume_req *req), - - TP_ARGS(stream, req), - - TP_STRUCT__entry( - __field( int, id ) - __field( uint32_t, channel ) - __field( uint32_t, target_volume ) - __field( uint64_t, curve_duration ) - __field( uint32_t, curve_type ) - ), - - TP_fast_assign( - __entry->id = stream->host_id; - __entry->channel = req->channel; - __entry->target_volume = req->target_volume; - __entry->curve_duration = req->curve_duration; - __entry->curve_type = req->curve_type; - ), - - TP_printk("stream %d chan 0x%x vol %d duration %llu type %d", - (int) __entry->id, (uint32_t) __entry->channel, - (uint32_t)__entry->target_volume, - (uint64_t)__entry->curve_duration, - (uint32_t)__entry->curve_type) -); - -TRACE_EVENT(hsw_device_config_req, - - TP_PROTO(struct sst_hsw_ipc_device_config_req *req), - - TP_ARGS(req), - - TP_STRUCT__entry( - __field( uint32_t, ssp ) - __field( uint32_t, clock_freq ) - __field( uint32_t, mode ) - __field( uint16_t, clock_divider ) - ), - - TP_fast_assign( - __entry->ssp = req->ssp_interface; - __entry->clock_freq = req->clock_frequency; - __entry->mode = req->mode; - __entry->clock_divider = req->clock_divider; - ), - - TP_printk("SSP %d Freq %d mode %d div %d", - (uint32_t)__entry->ssp, - (uint32_t)__entry->clock_freq, (uint32_t)__entry->mode, - (uint32_t)__entry->clock_divider) -); - -#endif /* _TRACE_HSWADSP_H */ - -/* This part must be outside protection */ -#include <trace/define_trace.h> diff --git a/include/trace/events/iocost.h b/include/trace/events/iocost.h index c2f580fd371b..0b6869980ba2 100644 --- a/include/trace/events/iocost.h +++ b/include/trace/events/iocost.h @@ -26,7 +26,6 @@ TRACE_EVENT(iocost_iocg_activate, __field(u64, vrate) __field(u64, last_period) __field(u64, cur_period) - __field(u64, last_vtime) __field(u64, vtime) __field(u32, weight) __field(u32, inuse) @@ -42,7 +41,6 @@ TRACE_EVENT(iocost_iocg_activate, __entry->vrate = now->vrate; __entry->last_period = last_period; __entry->cur_period = cur_period; - __entry->last_vtime = iocg->last_vtime; __entry->vtime = vtime; __entry->weight = iocg->weight; __entry->inuse = iocg->inuse; @@ -51,13 +49,12 @@ TRACE_EVENT(iocost_iocg_activate, ), TP_printk("[%s:%s] now=%llu:%llu vrate=%llu " - "period=%llu->%llu vtime=%llu->%llu " + "period=%llu->%llu vtime=%llu " "weight=%u/%u hweight=%llu/%llu", __get_str(devname), __get_str(cgroup), __entry->now, __entry->vnow, __entry->vrate, __entry->last_period, __entry->cur_period, - __entry->last_vtime, __entry->vtime, - __entry->inuse, __entry->weight, + __entry->vtime, __entry->inuse, __entry->weight, __entry->hweight_inuse, __entry->hweight_active ) ); @@ -98,7 +95,7 @@ DECLARE_EVENT_CLASS(iocg_inuse_update, ) ); -DEFINE_EVENT(iocg_inuse_update, iocost_inuse_takeback, +DEFINE_EVENT(iocg_inuse_update, iocost_inuse_shortage, TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, u32 old_inuse, u32 new_inuse, @@ -108,7 +105,7 @@ DEFINE_EVENT(iocg_inuse_update, iocost_inuse_takeback, old_hw_inuse, new_hw_inuse) ); -DEFINE_EVENT(iocg_inuse_update, iocost_inuse_giveaway, +DEFINE_EVENT(iocg_inuse_update, iocost_inuse_transfer, TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, u32 old_inuse, u32 new_inuse, @@ -118,7 +115,7 @@ DEFINE_EVENT(iocg_inuse_update, iocost_inuse_giveaway, old_hw_inuse, new_hw_inuse) ); -DEFINE_EVENT(iocg_inuse_update, iocost_inuse_reset, +DEFINE_EVENT(iocg_inuse_update, iocost_inuse_adjust, TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, u32 old_inuse, u32 new_inuse, @@ -131,11 +128,9 @@ DEFINE_EVENT(iocg_inuse_update, iocost_inuse_reset, TRACE_EVENT(iocost_ioc_vrate_adj, TP_PROTO(struct ioc *ioc, u64 new_vrate, u32 *missed_ppm, - u32 rq_wait_pct, int nr_lagging, int nr_shortages, - int nr_surpluses), + u32 rq_wait_pct, int nr_lagging, int nr_shortages), - TP_ARGS(ioc, new_vrate, missed_ppm, rq_wait_pct, nr_lagging, nr_shortages, - nr_surpluses), + TP_ARGS(ioc, new_vrate, missed_ppm, rq_wait_pct, nr_lagging, nr_shortages), TP_STRUCT__entry ( __string(devname, ioc_name(ioc)) @@ -147,7 +142,6 @@ TRACE_EVENT(iocost_ioc_vrate_adj, __field(u32, rq_wait_pct) __field(int, nr_lagging) __field(int, nr_shortages) - __field(int, nr_surpluses) ), TP_fast_assign( @@ -160,15 +154,54 @@ TRACE_EVENT(iocost_ioc_vrate_adj, __entry->rq_wait_pct = rq_wait_pct; __entry->nr_lagging = nr_lagging; __entry->nr_shortages = nr_shortages; - __entry->nr_surpluses = nr_surpluses; ), - TP_printk("[%s] vrate=%llu->%llu busy=%d missed_ppm=%u:%u rq_wait_pct=%u lagging=%d shortages=%d surpluses=%d", + TP_printk("[%s] vrate=%llu->%llu busy=%d missed_ppm=%u:%u rq_wait_pct=%u lagging=%d shortages=%d", __get_str(devname), __entry->old_vrate, __entry->new_vrate, __entry->busy_level, __entry->read_missed_ppm, __entry->write_missed_ppm, - __entry->rq_wait_pct, __entry->nr_lagging, __entry->nr_shortages, - __entry->nr_surpluses + __entry->rq_wait_pct, __entry->nr_lagging, __entry->nr_shortages + ) +); + +TRACE_EVENT(iocost_iocg_forgive_debt, + + TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, + u32 usage_pct, u64 old_debt, u64 new_debt, + u64 old_delay, u64 new_delay), + + TP_ARGS(iocg, path, now, usage_pct, + old_debt, new_debt, old_delay, new_delay), + + TP_STRUCT__entry ( + __string(devname, ioc_name(iocg->ioc)) + __string(cgroup, path) + __field(u64, now) + __field(u64, vnow) + __field(u32, usage_pct) + __field(u64, old_debt) + __field(u64, new_debt) + __field(u64, old_delay) + __field(u64, new_delay) + ), + + TP_fast_assign( + __assign_str(devname, ioc_name(iocg->ioc)); + __assign_str(cgroup, path); + __entry->now = now->now; + __entry->vnow = now->vnow; + __entry->usage_pct = usage_pct; + __entry->old_debt = old_debt; + __entry->new_debt = new_debt; + __entry->old_delay = old_delay; + __entry->new_delay = new_delay; + ), + + TP_printk("[%s:%s] now=%llu:%llu usage=%u debt=%llu->%llu delay=%llu->%llu", + __get_str(devname), __get_str(cgroup), + __entry->now, __entry->vnow, __entry->usage_pct, + __entry->old_debt, __entry->new_debt, + __entry->old_delay, __entry->new_delay ) ); diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 5fb752034386..67018d367b9f 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -79,6 +79,12 @@ #define IF_HAVE_PG_IDLE(flag,string) #endif +#ifdef CONFIG_64BIT +#define IF_HAVE_PG_ARCH_2(flag,string) ,{1UL << flag, string} +#else +#define IF_HAVE_PG_ARCH_2(flag,string) +#endif + #define __def_pageflag_names \ {1UL << PG_locked, "locked" }, \ {1UL << PG_waiters, "waiters" }, \ @@ -105,7 +111,8 @@ IF_HAVE_PG_MLOCK(PG_mlocked, "mlocked" ) \ IF_HAVE_PG_UNCACHED(PG_uncached, "uncached" ) \ IF_HAVE_PG_HWPOISON(PG_hwpoison, "hwpoison" ) \ IF_HAVE_PG_IDLE(PG_young, "young" ) \ -IF_HAVE_PG_IDLE(PG_idle, "idle" ) +IF_HAVE_PG_IDLE(PG_idle, "idle" ) \ +IF_HAVE_PG_ARCH_2(PG_arch_2, "arch_2" ) #define show_page_flags(flags) \ (flags) ? __print_flags(flags, "|", \ diff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index c33079b986e8..e70c90116eda 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h @@ -68,21 +68,14 @@ enum rxrpc_client_trace { rxrpc_client_chan_activate, rxrpc_client_chan_disconnect, rxrpc_client_chan_pass, - rxrpc_client_chan_unstarted, rxrpc_client_chan_wait_failed, rxrpc_client_cleanup, - rxrpc_client_count, rxrpc_client_discard, rxrpc_client_duplicate, rxrpc_client_exposed, rxrpc_client_replace, rxrpc_client_to_active, - rxrpc_client_to_culled, rxrpc_client_to_idle, - rxrpc_client_to_inactive, - rxrpc_client_to_upgrade, - rxrpc_client_to_waiting, - rxrpc_client_uncount, }; enum rxrpc_call_trace { @@ -271,29 +264,14 @@ enum rxrpc_tx_point { EM(rxrpc_client_chan_activate, "ChActv") \ EM(rxrpc_client_chan_disconnect, "ChDisc") \ EM(rxrpc_client_chan_pass, "ChPass") \ - EM(rxrpc_client_chan_unstarted, "ChUnst") \ EM(rxrpc_client_chan_wait_failed, "ChWtFl") \ EM(rxrpc_client_cleanup, "Clean ") \ - EM(rxrpc_client_count, "Count ") \ EM(rxrpc_client_discard, "Discar") \ EM(rxrpc_client_duplicate, "Duplic") \ EM(rxrpc_client_exposed, "Expose") \ EM(rxrpc_client_replace, "Replac") \ EM(rxrpc_client_to_active, "->Actv") \ - EM(rxrpc_client_to_culled, "->Cull") \ - EM(rxrpc_client_to_idle, "->Idle") \ - EM(rxrpc_client_to_inactive, "->Inac") \ - EM(rxrpc_client_to_upgrade, "->Upgd") \ - EM(rxrpc_client_to_waiting, "->Wait") \ - E_(rxrpc_client_uncount, "Uncoun") - -#define rxrpc_conn_cache_states \ - EM(RXRPC_CONN_CLIENT_INACTIVE, "Inac") \ - EM(RXRPC_CONN_CLIENT_WAITING, "Wait") \ - EM(RXRPC_CONN_CLIENT_ACTIVE, "Actv") \ - EM(RXRPC_CONN_CLIENT_UPGRADE, "Upgd") \ - EM(RXRPC_CONN_CLIENT_CULLED, "Cull") \ - E_(RXRPC_CONN_CLIENT_IDLE, "Idle") \ + E_(rxrpc_client_to_idle, "->Idle") #define rxrpc_call_traces \ EM(rxrpc_call_connected, "CON") \ @@ -594,23 +572,20 @@ TRACE_EVENT(rxrpc_client, __field(int, channel ) __field(int, usage ) __field(enum rxrpc_client_trace, op ) - __field(enum rxrpc_conn_cache_state, cs ) ), TP_fast_assign( - __entry->conn = conn->debug_id; + __entry->conn = conn ? conn->debug_id : 0; __entry->channel = channel; - __entry->usage = atomic_read(&conn->usage); + __entry->usage = conn ? atomic_read(&conn->usage) : -2; __entry->op = op; - __entry->cid = conn->proto.cid; - __entry->cs = conn->cache_state; + __entry->cid = conn ? conn->proto.cid : 0; ), - TP_printk("C=%08x h=%2d %s %s i=%08x u=%d", + TP_printk("C=%08x h=%2d %s i=%08x u=%d", __entry->conn, __entry->channel, __print_symbolic(__entry->op, rxrpc_client_traces), - __print_symbolic(__entry->cs, rxrpc_conn_cache_states), __entry->cid, __entry->usage) ); diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index fec25b9cfbaf..c96a4337afe6 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -630,6 +630,10 @@ DECLARE_TRACE(pelt_se_tp, TP_PROTO(struct sched_entity *se), TP_ARGS(se)); +DECLARE_TRACE(sched_cpu_capacity_tp, + TP_PROTO(struct rq *rq), + TP_ARGS(rq)); + DECLARE_TRACE(sched_overutilized_tp, TP_PROTO(struct root_domain *rd, bool overutilized), TP_ARGS(rd, overutilized)); diff --git a/include/trace/events/target.h b/include/trace/events/target.h index 77408edd29d2..67fad2677ed5 100644 --- a/include/trace/events/target.h +++ b/include/trace/events/target.h @@ -141,6 +141,7 @@ TRACE_EVENT(target_sequencer_start, __field( unsigned int, opcode ) __field( unsigned int, data_length ) __field( unsigned int, task_attribute ) + __field( unsigned char, control ) __array( unsigned char, cdb, TCM_MAX_COMMAND_SIZE ) __string( initiator, cmd->se_sess->se_node_acl->initiatorname ) ), @@ -151,6 +152,7 @@ TRACE_EVENT(target_sequencer_start, __entry->opcode = cmd->t_task_cdb[0]; __entry->data_length = cmd->data_length; __entry->task_attribute = cmd->sam_task_attr; + __entry->control = scsi_command_control(cmd->t_task_cdb); memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE); __assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname); ), @@ -160,9 +162,7 @@ TRACE_EVENT(target_sequencer_start, __entry->tag, show_opcode_name(__entry->opcode), __entry->data_length, __print_hex(__entry->cdb, 16), show_task_attribute_name(__entry->task_attribute), - scsi_command_size(__entry->cdb) <= 16 ? - __entry->cdb[scsi_command_size(__entry->cdb) - 1] : - __entry->cdb[1] + __entry->control ) ); @@ -178,6 +178,7 @@ TRACE_EVENT(target_cmd_complete, __field( unsigned int, opcode ) __field( unsigned int, data_length ) __field( unsigned int, task_attribute ) + __field( unsigned char, control ) __field( unsigned char, scsi_status ) __field( unsigned char, sense_length ) __array( unsigned char, cdb, TCM_MAX_COMMAND_SIZE ) @@ -191,6 +192,7 @@ TRACE_EVENT(target_cmd_complete, __entry->opcode = cmd->t_task_cdb[0]; __entry->data_length = cmd->data_length; __entry->task_attribute = cmd->sam_task_attr; + __entry->control = scsi_command_control(cmd->t_task_cdb); __entry->scsi_status = cmd->scsi_status; __entry->sense_length = cmd->scsi_status == SAM_STAT_CHECK_CONDITION ? min(18, ((u8 *) cmd->sense_buffer)[SPC_ADD_SENSE_LEN_OFFSET] + 8) : 0; @@ -208,9 +210,7 @@ TRACE_EVENT(target_cmd_complete, show_opcode_name(__entry->opcode), __entry->data_length, __print_hex(__entry->cdb, 16), show_task_attribute_name(__entry->task_attribute), - scsi_command_size(__entry->cdb) <= 16 ? - __entry->cdb[scsi_command_size(__entry->cdb) - 1] : - __entry->cdb[1] + __entry->control ) ); diff --git a/include/trace/events/xen.h b/include/trace/events/xen.h index a5ccfa67bc5c..3b61b587e137 100644 --- a/include/trace/events/xen.h +++ b/include/trace/events/xen.h @@ -153,26 +153,6 @@ DECLARE_EVENT_CLASS(xen_mmu__set_pte, DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte); -TRACE_EVENT(xen_mmu_set_pte_at, - TP_PROTO(struct mm_struct *mm, unsigned long addr, - pte_t *ptep, pte_t pteval), - TP_ARGS(mm, addr, ptep, pteval), - TP_STRUCT__entry( - __field(struct mm_struct *, mm) - __field(unsigned long, addr) - __field(pte_t *, ptep) - __field(pteval_t, pteval) - ), - TP_fast_assign(__entry->mm = mm; - __entry->addr = addr; - __entry->ptep = ptep; - __entry->pteval = pteval.pte), - TP_printk("mm %p addr %lx ptep %p pteval %0*llx (raw %0*llx)", - __entry->mm, __entry->addr, __entry->ptep, - (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)), - (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval) - ); - TRACE_DEFINE_SIZEOF(pmdval_t); TRACE_EVENT(xen_mmu_set_pmd, |