summaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/trace/ap.h
blob: 5c2e6c664b4d91b8d56e7f010a4ecad8a58c4717 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Tracepoint definitions for s390 ap bus related trace events
 *
 * There are two AP bus related tracepoint events defined here:
 * There is a tracepoint s390_ap_nqap event immediately after a request
 * has been pushed into the AP firmware queue with the NQAP AP command.
 * The other tracepoint s390_ap_dqap event fires immediately after a
 * reply has been pulled out of the AP firmware queue via DQAP AP command.
 * The idea of these two trace events focuses on performance to measure
 * the runtime of a crypto request/reply as close as possible at the
 * firmware level. In combination with the two zcrypt tracepoints (see the
 * zcrypt.h trace event definition file) this gives measurement data about
 * the runtime of a request/reply within the zcrpyt and AP bus layer.
 */

#undef TRACE_SYSTEM
#define TRACE_SYSTEM s390

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

#include <linux/tracepoint.h>

DECLARE_EVENT_CLASS(s390_ap_nqapdqap_template,
		    TP_PROTO(u16 card, u16 dom, u32 status, u64 psmid),
		    TP_ARGS(card, dom, status, psmid),
		    TP_STRUCT__entry(
			    __field(u16, card)
			    __field(u16, dom)
			    __field(u32, status)
			    __field(u64, psmid)),
		    TP_fast_assign(
			    __entry->card = card;
			    __entry->dom = dom;
			    __entry->status = status;
			    __entry->psmid = psmid;),
		    TP_printk("card=%u dom=%u status=0x%08x psmid=0x%016lx",
			      (unsigned short)__entry->card,
			      (unsigned short)__entry->dom,
			      (unsigned int)__entry->status,
			      (unsigned long)__entry->psmid)
);

/**
 * trace_s390_ap_nqap - ap msg nqap tracepoint function
 * @card:   Crypto card number addressed.
 * @dom:    Domain within the crypto card addressed.
 * @status: AP queue status (GR1 on return of nqap).
 * @psmid:  Unique id identifying this request/reply.
 *
 * Called immediately after a request has been enqueued into
 * the AP firmware queue with the NQAP command.
 */
DEFINE_EVENT(s390_ap_nqapdqap_template,
	     s390_ap_nqap,
	     TP_PROTO(u16 card, u16 dom, u32 status, u64 psmid),
	     TP_ARGS(card, dom, status, psmid)
);

/**
 * trace_s390_ap_dqap - ap msg dqap tracepoint function
 * @card:  Crypto card number addressed.
 * @dom:   Domain within the crypto card addressed.
 * @status: AP queue status (GR1 on return of dqap).
 * @psmid: Unique id identifying this request/reply.
 *
 * Called immediately after a reply has been dequeued from
 * the AP firmware queue with the DQAP command.
 */
DEFINE_EVENT(s390_ap_nqapdqap_template,
	     s390_ap_dqap,
	     TP_PROTO(u16 card, u16 dom, u32 status, u64 psmid),
	     TP_ARGS(card, dom, status, psmid)
);

#endif /* _TRACE_S390_AP_H */

/* This part must be outside protection */

#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE

#define TRACE_INCLUDE_PATH asm/trace
#define TRACE_INCLUDE_FILE ap

#include <trace/define_trace.h>