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

rpm.h (2500B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2
      3#undef TRACE_SYSTEM
      4#define TRACE_SYSTEM rpm
      5
      6#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
      7#define _TRACE_RUNTIME_POWER_H
      8
      9#include <linux/ktime.h>
     10#include <linux/tracepoint.h>
     11
     12struct device;
     13
     14/*
     15 * The rpm_internal events are used for tracing some important
     16 * runtime pm internal functions.
     17 */
     18DECLARE_EVENT_CLASS(rpm_internal,
     19
     20	TP_PROTO(struct device *dev, int flags),
     21
     22	TP_ARGS(dev, flags),
     23
     24	TP_STRUCT__entry(
     25		__string(       name,		dev_name(dev)	)
     26		__field(        int,            flags           )
     27		__field(        int ,   	usage_count	)
     28		__field(        int ,   	disable_depth   )
     29		__field(        int ,   	runtime_auto	)
     30		__field(        int ,   	request_pending	)
     31		__field(        int ,   	irq_safe	)
     32		__field(        int ,   	child_count 	)
     33	),
     34
     35	TP_fast_assign(
     36		__assign_str(name, dev_name(dev));
     37		__entry->flags = flags;
     38		__entry->usage_count = atomic_read(
     39			&dev->power.usage_count);
     40		__entry->disable_depth = dev->power.disable_depth;
     41		__entry->runtime_auto = dev->power.runtime_auto;
     42		__entry->request_pending = dev->power.request_pending;
     43		__entry->irq_safe = dev->power.irq_safe;
     44		__entry->child_count = atomic_read(
     45			&dev->power.child_count);
     46	),
     47
     48	TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d"
     49			" irq-%-1d child-%d",
     50			__get_str(name), __entry->flags,
     51			__entry->usage_count,
     52			__entry->disable_depth,
     53			__entry->runtime_auto,
     54			__entry->request_pending,
     55			__entry->irq_safe,
     56			__entry->child_count
     57		 )
     58);
     59DEFINE_EVENT(rpm_internal, rpm_suspend,
     60
     61	TP_PROTO(struct device *dev, int flags),
     62
     63	TP_ARGS(dev, flags)
     64);
     65DEFINE_EVENT(rpm_internal, rpm_resume,
     66
     67	TP_PROTO(struct device *dev, int flags),
     68
     69	TP_ARGS(dev, flags)
     70);
     71DEFINE_EVENT(rpm_internal, rpm_idle,
     72
     73	TP_PROTO(struct device *dev, int flags),
     74
     75	TP_ARGS(dev, flags)
     76);
     77DEFINE_EVENT(rpm_internal, rpm_usage,
     78
     79	TP_PROTO(struct device *dev, int flags),
     80
     81	TP_ARGS(dev, flags)
     82);
     83
     84TRACE_EVENT(rpm_return_int,
     85	TP_PROTO(struct device *dev, unsigned long ip, int ret),
     86	TP_ARGS(dev, ip, ret),
     87
     88	TP_STRUCT__entry(
     89		__string(       name,		dev_name(dev))
     90		__field(	unsigned long,		ip	)
     91		__field(	int,			ret	)
     92	),
     93
     94	TP_fast_assign(
     95		__assign_str(name, dev_name(dev));
     96		__entry->ip = ip;
     97		__entry->ret = ret;
     98	),
     99
    100	TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name),
    101		__entry->ret)
    102);
    103
    104#endif /* _TRACE_RUNTIME_POWER_H */
    105
    106/* This part must be outside protection */
    107#include <trace/define_trace.h>