cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mmc.h (7412B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#undef TRACE_SYSTEM
      3#define TRACE_SYSTEM mmc
      4
      5#if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ)
      6#define _TRACE_MMC_H
      7
      8#include <linux/blkdev.h>
      9#include <linux/mmc/core.h>
     10#include <linux/mmc/host.h>
     11#include <linux/tracepoint.h>
     12
     13TRACE_EVENT(mmc_request_start,
     14
     15	TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
     16
     17	TP_ARGS(host, mrq),
     18
     19	TP_STRUCT__entry(
     20		__field(u32,			cmd_opcode)
     21		__field(u32,			cmd_arg)
     22		__field(unsigned int,		cmd_flags)
     23		__field(unsigned int,		cmd_retries)
     24		__field(u32,			stop_opcode)
     25		__field(u32,			stop_arg)
     26		__field(unsigned int,		stop_flags)
     27		__field(unsigned int,		stop_retries)
     28		__field(u32,			sbc_opcode)
     29		__field(u32,			sbc_arg)
     30		__field(unsigned int,		sbc_flags)
     31		__field(unsigned int,		sbc_retries)
     32		__field(unsigned int,		blocks)
     33		__field(unsigned int,		blk_addr)
     34		__field(unsigned int,		blksz)
     35		__field(unsigned int,		data_flags)
     36		__field(int,			tag)
     37		__field(unsigned int,		can_retune)
     38		__field(unsigned int,		doing_retune)
     39		__field(unsigned int,		retune_now)
     40		__field(int,			need_retune)
     41		__field(int,			hold_retune)
     42		__field(unsigned int,		retune_period)
     43		__field(struct mmc_request *,	mrq)
     44		__string(name,			mmc_hostname(host))
     45	),
     46
     47	TP_fast_assign(
     48		__entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
     49		__entry->cmd_arg = mrq->cmd ? mrq->cmd->arg : 0;
     50		__entry->cmd_flags = mrq->cmd ? mrq->cmd->flags : 0;
     51		__entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
     52		__entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
     53		__entry->stop_arg = mrq->stop ? mrq->stop->arg : 0;
     54		__entry->stop_flags = mrq->stop ? mrq->stop->flags : 0;
     55		__entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
     56		__entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
     57		__entry->sbc_arg = mrq->sbc ? mrq->sbc->arg : 0;
     58		__entry->sbc_flags = mrq->sbc ? mrq->sbc->flags : 0;
     59		__entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
     60		__entry->blksz = mrq->data ? mrq->data->blksz : 0;
     61		__entry->blocks = mrq->data ? mrq->data->blocks : 0;
     62		__entry->blk_addr = mrq->data ? mrq->data->blk_addr : 0;
     63		__entry->data_flags = mrq->data ? mrq->data->flags : 0;
     64		__entry->tag = mrq->tag;
     65		__entry->can_retune = host->can_retune;
     66		__entry->doing_retune = host->doing_retune;
     67		__entry->retune_now = host->retune_now;
     68		__entry->need_retune = host->need_retune;
     69		__entry->hold_retune = host->hold_retune;
     70		__entry->retune_period = host->retune_period;
     71		__assign_str(name, mmc_hostname(host));
     72		__entry->mrq = mrq;
     73	),
     74
     75	TP_printk("%s: start struct mmc_request[%p]: "
     76		  "cmd_opcode=%u cmd_arg=0x%x cmd_flags=0x%x cmd_retries=%u "
     77		  "stop_opcode=%u stop_arg=0x%x stop_flags=0x%x stop_retries=%u "
     78		  "sbc_opcode=%u sbc_arg=0x%x sbc_flags=0x%x sbc_retires=%u "
     79		  "blocks=%u block_size=%u blk_addr=%u data_flags=0x%x "
     80		  "tag=%d can_retune=%u doing_retune=%u retune_now=%u "
     81		  "need_retune=%d hold_retune=%d retune_period=%u",
     82		  __get_str(name), __entry->mrq,
     83		  __entry->cmd_opcode, __entry->cmd_arg,
     84		  __entry->cmd_flags, __entry->cmd_retries,
     85		  __entry->stop_opcode, __entry->stop_arg,
     86		  __entry->stop_flags, __entry->stop_retries,
     87		  __entry->sbc_opcode, __entry->sbc_arg,
     88		  __entry->sbc_flags, __entry->sbc_retries,
     89		  __entry->blocks, __entry->blksz,
     90		  __entry->blk_addr, __entry->data_flags, __entry->tag,
     91		  __entry->can_retune, __entry->doing_retune,
     92		  __entry->retune_now, __entry->need_retune,
     93		  __entry->hold_retune, __entry->retune_period)
     94);
     95
     96TRACE_EVENT(mmc_request_done,
     97
     98	TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
     99
    100	TP_ARGS(host, mrq),
    101
    102	TP_STRUCT__entry(
    103		__field(u32,			cmd_opcode)
    104		__field(int,			cmd_err)
    105		__array(u32,			cmd_resp,	4)
    106		__field(unsigned int,		cmd_retries)
    107		__field(u32,			stop_opcode)
    108		__field(int,			stop_err)
    109		__array(u32,			stop_resp,	4)
    110		__field(unsigned int,		stop_retries)
    111		__field(u32,			sbc_opcode)
    112		__field(int,			sbc_err)
    113		__array(u32,			sbc_resp,	4)
    114		__field(unsigned int,		sbc_retries)
    115		__field(unsigned int,		bytes_xfered)
    116		__field(int,			data_err)
    117		__field(int,			tag)
    118		__field(unsigned int,		can_retune)
    119		__field(unsigned int,		doing_retune)
    120		__field(unsigned int,		retune_now)
    121		__field(int,			need_retune)
    122		__field(int,			hold_retune)
    123		__field(unsigned int,		retune_period)
    124		__field(struct mmc_request *,	mrq)
    125		__string(name,			mmc_hostname(host))
    126	),
    127
    128	TP_fast_assign(
    129		__entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
    130		__entry->cmd_err = mrq->cmd ? mrq->cmd->error : 0;
    131		__entry->cmd_resp[0] = mrq->cmd ? mrq->cmd->resp[0] : 0;
    132		__entry->cmd_resp[1] = mrq->cmd ? mrq->cmd->resp[1] : 0;
    133		__entry->cmd_resp[2] = mrq->cmd ? mrq->cmd->resp[2] : 0;
    134		__entry->cmd_resp[3] = mrq->cmd ? mrq->cmd->resp[3] : 0;
    135		__entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
    136		__entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
    137		__entry->stop_err = mrq->stop ? mrq->stop->error : 0;
    138		__entry->stop_resp[0] = mrq->stop ? mrq->stop->resp[0] : 0;
    139		__entry->stop_resp[1] = mrq->stop ? mrq->stop->resp[1] : 0;
    140		__entry->stop_resp[2] = mrq->stop ? mrq->stop->resp[2] : 0;
    141		__entry->stop_resp[3] = mrq->stop ? mrq->stop->resp[3] : 0;
    142		__entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
    143		__entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
    144		__entry->sbc_err = mrq->sbc ? mrq->sbc->error : 0;
    145		__entry->sbc_resp[0] = mrq->sbc ? mrq->sbc->resp[0] : 0;
    146		__entry->sbc_resp[1] = mrq->sbc ? mrq->sbc->resp[1] : 0;
    147		__entry->sbc_resp[2] = mrq->sbc ? mrq->sbc->resp[2] : 0;
    148		__entry->sbc_resp[3] = mrq->sbc ? mrq->sbc->resp[3] : 0;
    149		__entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
    150		__entry->bytes_xfered = mrq->data ? mrq->data->bytes_xfered : 0;
    151		__entry->data_err = mrq->data ? mrq->data->error : 0;
    152		__entry->tag = mrq->tag;
    153		__entry->can_retune = host->can_retune;
    154		__entry->doing_retune = host->doing_retune;
    155		__entry->retune_now = host->retune_now;
    156		__entry->need_retune = host->need_retune;
    157		__entry->hold_retune = host->hold_retune;
    158		__entry->retune_period = host->retune_period;
    159		__assign_str(name, mmc_hostname(host));
    160		__entry->mrq = mrq;
    161	),
    162
    163	TP_printk("%s: end struct mmc_request[%p]: "
    164		  "cmd_opcode=%u cmd_err=%d cmd_resp=0x%x 0x%x 0x%x 0x%x "
    165		  "cmd_retries=%u stop_opcode=%u stop_err=%d "
    166		  "stop_resp=0x%x 0x%x 0x%x 0x%x stop_retries=%u "
    167		  "sbc_opcode=%u sbc_err=%d sbc_resp=0x%x 0x%x 0x%x 0x%x "
    168		  "sbc_retries=%u bytes_xfered=%u data_err=%d tag=%d "
    169		  "can_retune=%u doing_retune=%u retune_now=%u need_retune=%d "
    170		  "hold_retune=%d retune_period=%u",
    171		  __get_str(name), __entry->mrq,
    172		  __entry->cmd_opcode, __entry->cmd_err,
    173		  __entry->cmd_resp[0], __entry->cmd_resp[1],
    174		  __entry->cmd_resp[2], __entry->cmd_resp[3],
    175		  __entry->cmd_retries,
    176		  __entry->stop_opcode, __entry->stop_err,
    177		  __entry->stop_resp[0], __entry->stop_resp[1],
    178		  __entry->stop_resp[2], __entry->stop_resp[3],
    179		  __entry->stop_retries,
    180		  __entry->sbc_opcode, __entry->sbc_err,
    181		  __entry->sbc_resp[0], __entry->sbc_resp[1],
    182		  __entry->sbc_resp[2], __entry->sbc_resp[3],
    183		  __entry->sbc_retries,
    184		  __entry->bytes_xfered, __entry->data_err, __entry->tag,
    185		  __entry->can_retune, __entry->doing_retune,
    186		  __entry->retune_now, __entry->need_retune,
    187		  __entry->hold_retune, __entry->retune_period)
    188);
    189
    190#endif /* _TRACE_MMC_H */
    191
    192/* This part must be outside protection */
    193#include <trace/define_trace.h>