include/trace/events/xen.h

Source file repositories/reference/linux-study-clean/include/trace/events/xen.h

File Facts

System
Linux kernel
Corpus path
include/trace/events/xen.h
Extension
.h
Size
12748 bytes
Lines
409
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

#undef TRACE_SYSTEM
#define TRACE_SYSTEM xen

#if !defined(_TRACE_XEN_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_XEN_H

#include <linux/tracepoint.h>
#include <asm/xen/hypervisor.h>
#include <asm/xen/trace_types.h>

struct multicall_entry;

/* Multicalls */
TRACE_EVENT(xen_mc_batch,
	    TP_PROTO(unsigned long flags),
	    TP_ARGS(flags),
	    TP_STRUCT__entry(
		    __field(unsigned long, flags)
		    ),
	    TP_fast_assign(__entry->flags = flags),
	    TP_printk("start batch lazy flags %lx", __entry->flags)
	);

TRACE_EVENT(xen_mc_issue,
	    TP_PROTO(bool flush, unsigned long flags),
	    TP_ARGS(flush, flags),
	    TP_STRUCT__entry(
		    __field(unsigned long, flags)
		    __field(bool, flush)
		    ),
	    TP_fast_assign(__entry->flush = flush;
			   __entry->flags = flags;
		    ),
	    TP_printk("flush: %s, flags %lx",
		      __entry->flush ? "yes" : "no", __entry->flags)
	);

TRACE_DEFINE_SIZEOF(ulong);

TRACE_EVENT(xen_mc_entry,
	    TP_PROTO(struct multicall_entry *mc, unsigned nargs),
	    TP_ARGS(mc, nargs),
	    TP_STRUCT__entry(
		    __field(unsigned int, op)
		    __field(unsigned int, nargs)
		    __array(unsigned long, args, 6)
		    ),
	    TP_fast_assign(__entry->op = mc->op;
			   __entry->nargs = nargs;
			   memcpy(__entry->args, mc->args, sizeof(ulong) * nargs);
			   memset(__entry->args + nargs, 0, sizeof(ulong) * (6 - nargs));
		    ),
	    TP_printk("op %u%s args [%lx, %lx, %lx, %lx, %lx, %lx]",
		      __entry->op, xen_hypercall_name(__entry->op),
		      __entry->args[0], __entry->args[1], __entry->args[2],
		      __entry->args[3], __entry->args[4], __entry->args[5])
	);

TRACE_EVENT(xen_mc_entry_alloc,
	    TP_PROTO(size_t args),
	    TP_ARGS(args),
	    TP_STRUCT__entry(
		    __field(size_t, args)
		    ),
	    TP_fast_assign(__entry->args = args),
	    TP_printk("alloc entry %zu arg bytes", __entry->args)
	);

TRACE_EVENT(xen_mc_callback,
	    TP_PROTO(xen_mc_callback_fn_t fn, void *data),
	    TP_ARGS(fn, data),
	    TP_STRUCT__entry(
		    /*
		     * Use field_struct to avoid is_signed_type()
		     * comparison of a function pointer.
		     */
		    __field_struct(xen_mc_callback_fn_t, fn)
		    __field(void *, data)
		    ),
	    TP_fast_assign(
		    __entry->fn = fn;
		    __entry->data = data;
		    ),
	    TP_printk("callback %ps, data %p",
		      __entry->fn, __entry->data)
	);

TRACE_EVENT(xen_mc_flush_reason,
	    TP_PROTO(enum xen_mc_flush_reason reason),
	    TP_ARGS(reason),

Annotation

Implementation Notes