Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _TRACE_KYBER_H */
0093 
0094 /* This part must be outside protection */
0095 #include <trace/define_trace.h>