0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM kyber
0004
0005 #if !defined(_TRACE_KYBER_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_KYBER_H
0007
0008 #include <linux/blkdev.h>
0009 #include <linux/tracepoint.h>
0010
0011 #define DOMAIN_LEN 16
0012 #define LATENCY_TYPE_LEN 8
0013
0014 TRACE_EVENT(kyber_latency,
0015
0016 TP_PROTO(dev_t dev, const char *domain, const char *type,
0017 unsigned int percentile, unsigned int numerator,
0018 unsigned int denominator, unsigned int samples),
0019
0020 TP_ARGS(dev, domain, type, percentile, numerator, denominator, samples),
0021
0022 TP_STRUCT__entry(
0023 __field( dev_t, dev )
0024 __array( char, domain, DOMAIN_LEN )
0025 __array( char, type, LATENCY_TYPE_LEN )
0026 __field( u8, percentile )
0027 __field( u8, numerator )
0028 __field( u8, denominator )
0029 __field( unsigned int, samples )
0030 ),
0031
0032 TP_fast_assign(
0033 __entry->dev = dev;
0034 strlcpy(__entry->domain, domain, sizeof(__entry->domain));
0035 strlcpy(__entry->type, type, sizeof(__entry->type));
0036 __entry->percentile = percentile;
0037 __entry->numerator = numerator;
0038 __entry->denominator = denominator;
0039 __entry->samples = samples;
0040 ),
0041
0042 TP_printk("%d,%d %s %s p%u %u/%u samples=%u",
0043 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->domain,
0044 __entry->type, __entry->percentile, __entry->numerator,
0045 __entry->denominator, __entry->samples)
0046 );
0047
0048 TRACE_EVENT(kyber_adjust,
0049
0050 TP_PROTO(dev_t dev, const char *domain, unsigned int depth),
0051
0052 TP_ARGS(dev, domain, depth),
0053
0054 TP_STRUCT__entry(
0055 __field( dev_t, dev )
0056 __array( char, domain, DOMAIN_LEN )
0057 __field( unsigned int, depth )
0058 ),
0059
0060 TP_fast_assign(
0061 __entry->dev = dev;
0062 strlcpy(__entry->domain, domain, sizeof(__entry->domain));
0063 __entry->depth = depth;
0064 ),
0065
0066 TP_printk("%d,%d %s %u",
0067 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->domain,
0068 __entry->depth)
0069 );
0070
0071 TRACE_EVENT(kyber_throttled,
0072
0073 TP_PROTO(dev_t dev, const char *domain),
0074
0075 TP_ARGS(dev, domain),
0076
0077 TP_STRUCT__entry(
0078 __field( dev_t, dev )
0079 __array( char, domain, DOMAIN_LEN )
0080 ),
0081
0082 TP_fast_assign(
0083 __entry->dev = dev;
0084 strlcpy(__entry->domain, domain, sizeof(__entry->domain));
0085 ),
0086
0087 TP_printk("%d,%d %s", MAJOR(__entry->dev), MINOR(__entry->dev),
0088 __entry->domain)
0089 );
0090
0091 #define _TRACE_KYBER_H
0092 #endif
0093
0094
0095 #include <trace/define_trace.h>