Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define TRACE_SYSTEM wbt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #if !defined(_TRACE_WBT_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #define _TRACE_WBT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include "../../../block/blk-wbt.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  * wbt_stat - trace stats for blk_wb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  * @stat: array of read/write stats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) TRACE_EVENT(wbt_stat,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	TP_PROTO(struct backing_dev_info *bdi, struct blk_rq_stat *stat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	TP_ARGS(bdi, stat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 		__array(char, name, 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 		__field(s64, rmean)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 		__field(u64, rmin)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 		__field(u64, rmax)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 		__field(s64, rnr_samples)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 		__field(s64, rtime)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 		__field(s64, wmean)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 		__field(u64, wmin)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 		__field(u64, wmax)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 		__field(s64, wnr_samples)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 		__field(s64, wtime)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 		strlcpy(__entry->name, bdi_dev_name(bdi),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 			ARRAY_SIZE(__entry->name));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 		__entry->rmean		= stat[0].mean;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 		__entry->rmin		= stat[0].min;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 		__entry->rmax		= stat[0].max;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 		__entry->rnr_samples	= stat[0].nr_samples;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 		__entry->wmean		= stat[1].mean;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 		__entry->wmin		= stat[1].min;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 		__entry->wmax		= stat[1].max;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 		__entry->wnr_samples	= stat[1].nr_samples;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	TP_printk("%s: rmean=%llu, rmin=%llu, rmax=%llu, rsamples=%llu, "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 		  "wmean=%llu, wmin=%llu, wmax=%llu, wsamples=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 		  __entry->name, __entry->rmean, __entry->rmin, __entry->rmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 		  __entry->rnr_samples, __entry->wmean, __entry->wmin,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 		  __entry->wmax, __entry->wnr_samples)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)  * wbt_lat - trace latency event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)  * @lat: latency trigger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) TRACE_EVENT(wbt_lat,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	TP_PROTO(struct backing_dev_info *bdi, unsigned long lat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	TP_ARGS(bdi, lat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 		__array(char, name, 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 		__field(unsigned long, lat)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 		strlcpy(__entry->name, bdi_dev_name(bdi),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 			ARRAY_SIZE(__entry->name));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		__entry->lat = div_u64(lat, 1000);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	TP_printk("%s: latency %lluus", __entry->name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 			(unsigned long long) __entry->lat)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)  * wbt_step - trace wb event step
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)  * @msg: context message
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)  * @step: the current scale step count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)  * @window: the current monitoring window
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)  * @bg: the current background queue limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)  * @normal: the current normal writeback limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)  * @max: the current max throughput writeback limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) TRACE_EVENT(wbt_step,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	TP_PROTO(struct backing_dev_info *bdi, const char *msg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 		 int step, unsigned long window, unsigned int bg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 		 unsigned int normal, unsigned int max),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	TP_ARGS(bdi, msg, step, window, bg, normal, max),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		__array(char, name, 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 		__field(const char *, msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 		__field(int, step)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 		__field(unsigned long, window)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 		__field(unsigned int, bg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 		__field(unsigned int, normal)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 		__field(unsigned int, max)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 		strlcpy(__entry->name, bdi_dev_name(bdi),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 			ARRAY_SIZE(__entry->name));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 		__entry->msg	= msg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 		__entry->step	= step;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 		__entry->window	= div_u64(window, 1000);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 		__entry->bg	= bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 		__entry->normal	= normal;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 		__entry->max	= max;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	TP_printk("%s: %s: step=%d, window=%luus, background=%u, normal=%u, max=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 		  __entry->name, __entry->msg, __entry->step, __entry->window,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 		  __entry->bg, __entry->normal, __entry->max)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)  * wbt_timer - trace wb timer event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)  * @status: timer state status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)  * @step: the current scale step count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)  * @inflight: tracked writes inflight
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) TRACE_EVENT(wbt_timer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	TP_PROTO(struct backing_dev_info *bdi, unsigned int status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 		 int step, unsigned int inflight),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	TP_ARGS(bdi, status, step, inflight),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 		__array(char, name, 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 		__field(unsigned int, status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 		__field(int, step)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 		__field(unsigned int, inflight)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 		strlcpy(__entry->name, bdi_dev_name(bdi),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 			ARRAY_SIZE(__entry->name));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 		__entry->status		= status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 		__entry->step		= step;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 		__entry->inflight	= inflight;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	TP_printk("%s: status=%u, step=%d, inflight=%u", __entry->name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 		  __entry->status, __entry->step, __entry->inflight)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #endif /* _TRACE_WBT_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) #include <trace/define_trace.h>