/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM mmc #if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_MMC_H #include <linux/blkdev.h> #include <linux/mmc/core.h> #include <linux/mmc/host.h> #include <linux/tracepoint.h> TRACE_EVENT(mmc_request_start, TP_PROTO(struct mmc_host *host, struct mmc_request *mrq), TP_ARGS(host, mrq), TP_STRUCT__entry( __field(u32, cmd_opcode) __field(u32, cmd_arg) __field(unsigned int, cmd_flags) __field(unsigned int, cmd_retries) __field(u32, stop_opcode) __field(u32, stop_arg) __field(unsigned int, stop_flags) __field(unsigned int, stop_retries) __field(u32, sbc_opcode) __field(u32, sbc_arg) __field(unsigned int, sbc_flags) __field(unsigned int, sbc_retries) __field(unsigned int, blocks) __field(unsigned int, blk_addr) __field(unsigned int, blksz) __field(unsigned int, data_flags) __field(int, tag) __field(unsigned int, can_retune) __field(unsigned int, doing_retune) __field(unsigned int, retune_now) __field(int, need_retune) __field(int, hold_retune) __field(unsigned int, retune_period) __field(struct mmc_request *, mrq) __string(name, mmc_hostname(host)) ), TP_fast_assign( __entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0; __entry->cmd_arg = mrq->cmd ? mrq->cmd->arg : 0; __entry->cmd_flags = mrq->cmd ? mrq->cmd->flags : 0; __entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0; __entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0; __entry->stop_arg = mrq->stop ? mrq->stop->arg : 0; __entry->stop_flags = mrq->stop ? mrq->stop->flags : 0; __entry->stop_retries = mrq->stop ? mrq->stop->retries : 0; __entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0; __entry->sbc_arg = mrq->sbc ? mrq->sbc->arg : 0; __entry->sbc_flags = mrq->sbc ? mrq->sbc->flags : 0; __entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0; __entry->blksz = mrq->data ? mrq->data->blksz : 0; __entry->blocks = mrq->data ? mrq->data->blocks : 0; __entry->blk_addr = mrq->data ? mrq->data->blk_addr : 0; __entry->data_flags = mrq->data ? mrq->data->flags : 0; __entry->tag = mrq->tag; __entry->can_retune = host->can_retune; __entry->doing_retune = host->doing_retune; __entry->retune_now = host->retune_now; __entry->need_retune = host->need_retune; __entry->hold_retune = host->hold_retune; __entry->retune_period = host->retune_period; __assign_str(name, mmc_hostname(host)); __entry->mrq = mrq; ), TP_printk("%s: start struct mmc_request[%p]: " "cmd_opcode=%u cmd_arg=0x%x cmd_flags=0x%x cmd_retries=%u " "stop_opcode=%u stop_arg=0x%x stop_flags=0x%x stop_retries=%u " "sbc_opcode=%u sbc_arg=0x%x sbc_flags=0x%x sbc_retires=%u " "blocks=%u block_size=%u blk_addr=%u data_flags=0x%x " "tag=%d can_retune=%u doing_retune=%u retune_now=%u " "need_retune=%d hold_retune=%d retune_period=%u", __get_str(name), __entry->mrq, __entry->cmd_opcode, __entry->cmd_arg, __entry->cmd_flags, __entry->cmd_retries, __entry->stop_opcode, __entry->stop_arg, __entry->stop_flags, __entry->stop_retries, __entry->sbc_opcode, __entry->sbc_arg, __entry->sbc_flags, __entry->sbc_retries, __entry->blocks, __entry->blksz, __entry->blk_addr, __entry->data_flags, __entry->tag, __entry->can_retune, __entry->doing_retune, __entry->retune_now, __entry->need_retune, __entry->hold_retune, __entry->retune_period) ); TRACE_EVENT(mmc_request_done, TP_PROTO(struct mmc_host *host, struct mmc_request *mrq), TP_ARGS(host, mrq), TP_STRUCT__entry( __field(u32, cmd_opcode) __field(int, cmd_err) __array(u32, cmd_resp, 4) __field(unsigned int, cmd_retries) __field(u32, stop_opcode) __field(int, stop_err) __array(u32, stop_resp, 4) __field(unsigned int, stop_retries) __field(u32, sbc_opcode) __field(int, sbc_err) __array(u32, sbc_resp, 4) __field(unsigned int, sbc_retries) __field(unsigned int, bytes_xfered) __field(int, data_err) __field(int, tag) __field(unsigned int, can_retune) __field(unsigned int, doing_retune) __field(unsigned int, retune_now) __field(int, need_retune) __field(int, hold_retune) __field(unsigned int, retune_period) __field(struct mmc_request *, mrq) __string(name, mmc_hostname(host)) ), TP_fast_assign( __entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0; __entry->cmd_err = mrq->cmd ? mrq->cmd->error : 0; __entry->cmd_resp[0] = mrq->cmd ? mrq->cmd->resp[0] : 0; __entry->cmd_resp[1] = mrq->cmd ? mrq->cmd->resp[1] : 0; __entry->cmd_resp[2] = mrq->cmd ? mrq->cmd->resp[2] : 0; __entry->cmd_resp[3] = mrq->cmd ? mrq->cmd->resp[3] : 0; __entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0; __entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0; __entry->stop_err = mrq->stop ? mrq->stop->error : 0; __entry->stop_resp[0] = mrq->stop ? mrq->stop->resp[0] : 0; __entry->stop_resp[1] = mrq->stop ? mrq->stop->resp[1] : 0; __entry->stop_resp[2] = mrq->stop ? mrq->stop->resp[2] : 0; __entry->stop_resp[3] = mrq->stop ? mrq->stop->resp[3] : 0; __entry->stop_retries = mrq->stop ? mrq->stop->retries : 0; __entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0; __entry->sbc_err = mrq->sbc ? mrq->sbc->error : 0; __entry->sbc_resp[0] = mrq->sbc ? mrq->sbc->resp[0] : 0; __entry->sbc_resp[1] = mrq->sbc ? mrq->sbc->resp[1] : 0; __entry->sbc_resp[2] = mrq->sbc ? mrq->sbc->resp[2] : 0; __entry->sbc_resp[3] = mrq->sbc ? mrq->sbc->resp[3] : 0; __entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0; __entry->bytes_xfered = mrq->data ? mrq->data->bytes_xfered : 0; __entry->data_err = mrq->data ? mrq->data->error : 0; __entry->tag = mrq->tag; __entry->can_retune = host->can_retune; __entry->doing_retune = host->doing_retune; __entry->retune_now = host->retune_now; __entry->need_retune = host->need_retune; __entry->hold_retune = host->hold_retune; __entry->retune_period = host->retune_period; __assign_str(name, mmc_hostname(host)); __entry->mrq = mrq; ), TP_printk("%s: end struct mmc_request[%p]: " "cmd_opcode=%u cmd_err=%d cmd_resp=0x%x 0x%x 0x%x 0x%x " "cmd_retries=%u stop_opcode=%u stop_err=%d " "stop_resp=0x%x 0x%x 0x%x 0x%x stop_retries=%u " "sbc_opcode=%u sbc_err=%d sbc_resp=0x%x 0x%x 0x%x 0x%x " "sbc_retries=%u bytes_xfered=%u data_err=%d tag=%d " "can_retune=%u doing_retune=%u retune_now=%u need_retune=%d " "hold_retune=%d retune_period=%u", __get_str(name), __entry->mrq, __entry->cmd_opcode, __entry->cmd_err, __entry->cmd_resp[0], __entry->cmd_resp[1], __entry->cmd_resp[2], __entry->cmd_resp[3], __entry->cmd_retries, __entry->stop_opcode, __entry->stop_err, __entry->stop_resp[0], __entry->stop_resp[1], __entry->stop_resp[2], __entry->stop_resp[3], __entry->stop_retries, __entry->sbc_opcode, __entry->sbc_err, __entry->sbc_resp[0], __entry->sbc_resp[1], __entry->sbc_resp[2], __entry->sbc_resp[3], __entry->sbc_retries, __entry->bytes_xfered, __entry->data_err, __entry->tag, __entry->can_retune, __entry->doing_retune, __entry->retune_now, __entry->need_retune, __entry->hold_retune, __entry->retune_period) ); #endif /* _TRACE_MMC_H */ /* This part must be outside protection */ #include <trace/define_trace.h>
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
9p.h | File | 5.1 KB | 0644 |
|
afs.h | File | 13.13 KB | 0644 |
|
alarmtimer.h | File | 2.04 KB | 0644 |
|
asoc.h | File | 5.17 KB | 0644 |
|
bcache.h | File | 10.9 KB | 0644 |
|
block.h | File | 17.18 KB | 0644 |
|
bpf.h | File | 8.23 KB | 0644 |
|
bridge.h | File | 3.45 KB | 0644 |
|
btrfs.h | File | 46.21 KB | 0644 |
|
cgroup.h | File | 3.21 KB | 0644 |
|
clk.h | File | 3.69 KB | 0644 |
|
cma.h | File | 1.31 KB | 0644 |
|
compaction.h | File | 7.76 KB | 0644 |
|
context_tracking.h | File | 1.15 KB | 0644 |
|
cpuhp.h | File | 1.83 KB | 0644 |
|
devlink.h | File | 1.76 KB | 0644 |
|
dma_fence.h | File | 1.66 KB | 0644 |
|
ext4.h | File | 64.44 KB | 0644 |
|
f2fs.h | File | 36.38 KB | 0644 |
|
fib.h | File | 2.45 KB | 0644 |
|
fib6.h | File | 1.82 KB | 0644 |
|
filelock.h | File | 6.27 KB | 0644 |
|
filemap.h | File | 2.74 KB | 0644 |
|
fs.h | File | 946 B | 0644 |
|
fs_dax.h | File | 8.26 KB | 0644 |
|
fsi.h | File | 2.81 KB | 0644 |
|
fsi_master_gpio.h | File | 1.54 KB | 0644 |
|
gpio.h | File | 1.13 KB | 0644 |
|
host1x.h | File | 5.77 KB | 0644 |
|
hswadsp.h | File | 8.37 KB | 0644 |
|
huge_memory.h | File | 4.33 KB | 0644 |
|
i2c.h | File | 4.15 KB | 0644 |
|
intel-sst.h | File | 2.51 KB | 0644 |
|
intel_ish.h | File | 556 B | 0644 |
|
iommu.h | File | 3.03 KB | 0644 |
|
ipi.h | File | 1.88 KB | 0644 |
|
irq.h | File | 3.8 KB | 0644 |
|
irq_matrix.h | File | 4.94 KB | 0644 |
|
jbd2.h | File | 9.79 KB | 0644 |
|
kmem.h | File | 7.39 KB | 0644 |
|
kvm.h | File | 9.03 KB | 0644 |
|
libata.h | File | 11.57 KB | 0644 |
|
lock.h | File | 1.7 KB | 0644 |
|
mce.h | File | 1.85 KB | 0644 |
|
mdio.h | File | 1.02 KB | 0644 |
|
migrate.h | File | 2.42 KB | 0644 |
|
mmc.h | File | 7.24 KB | 0644 |
|
mmflags.h | File | 8.29 KB | 0644 |
|
module.h | File | 2.78 KB | 0644 |
|
napi.h | File | 1013 B | 0644 |
|
net.h | File | 6.56 KB | 0644 |
|
nilfs2.h | File | 5.2 KB | 0644 |
|
nmi.h | File | 780 B | 0644 |
|
oom.h | File | 3.88 KB | 0644 |
|
page_isolation.h | File | 943 B | 0644 |
|
page_ref.h | File | 2.99 KB | 0644 |
|
pagemap.h | File | 2.14 KB | 0644 |
|
percpu.h | File | 2.61 KB | 0644 |
|
power.h | File | 11.35 KB | 0644 |
|
power_cpu_migrate.h | File | 1.59 KB | 0644 |
|
preemptirq.h | File | 1.95 KB | 0644 |
|
printk.h | File | 786 B | 0644 |
|
qdisc.h | File | 1.37 KB | 0644 |
|
rcu.h | File | 24.64 KB | 0644 |
|
regulator.h | File | 2.4 KB | 0644 |
|
rpm.h | File | 2.34 KB | 0644 |
|
rxrpc.h | File | 33.79 KB | 0644 |
|
sched.h | File | 14.12 KB | 0644 |
|
scsi.h | File | 12.32 KB | 0644 |
|
signal.h | File | 3.43 KB | 0644 |
|
skb.h | File | 1.38 KB | 0644 |
|
smbus.h | File | 7.51 KB | 0644 |
|
sock.h | File | 1.72 KB | 0644 |
|
spi.h | File | 3.31 KB | 0644 |
|
spmi.h | File | 3.24 KB | 0644 |
|
sunrpc.h | File | 18.31 KB | 0644 |
|
sunvnet.h | File | 3.06 KB | 0644 |
|
swiotlb.h | File | 1.22 KB | 0644 |
|
syscalls.h | File | 1.48 KB | 0644 |
|
target.h | File | 7.52 KB | 0644 |
|
task.h | File | 1.49 KB | 0644 |
|
tcp.h | File | 6.57 KB | 0644 |
|
thermal.h | File | 5.58 KB | 0644 |
|
thermal_power_allocator.h | File | 3.22 KB | 0644 |
|
thp.h | File | 2.09 KB | 0644 |
|
timer.h | File | 9.58 KB | 0644 |
|
tlb.h | File | 1.41 KB | 0644 |
|
udp.h | File | 632 B | 0644 |
|
ufs.h | File | 6.85 KB | 0644 |
|
v4l2.h | File | 8.81 KB | 0644 |
|
vb2.h | File | 1.73 KB | 0644 |
|
vmscan.h | File | 12.47 KB | 0644 |
|
vsock_virtio_transport_common.h | File | 3.49 KB | 0644 |
|
wbt.h | File | 3.83 KB | 0644 |
|
workqueue.h | File | 2.7 KB | 0644 |
|
writeback.h | File | 19.81 KB | 0644 |
|
xdp.h | File | 5.76 KB | 0644 |
|
xen.h | File | 14.66 KB | 0644 |
|