Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,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>
@@ -0,0 +1,44 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Tracepoint header for s390 diagnose calls
*
* Copyright IBM Corp. 2015
* Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM s390
#if !defined(_TRACE_S390_DIAG_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_S390_DIAG_H
#include <linux/tracepoint.h>
#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_PATH asm/trace
#define TRACE_INCLUDE_FILE diag
TRACE_EVENT(s390_diagnose,
TP_PROTO(unsigned short nr),
TP_ARGS(nr),
TP_STRUCT__entry(
__field(unsigned short, nr)
),
TP_fast_assign(
__entry->nr = nr;
),
TP_printk("nr=0x%x", __entry->nr)
);
#ifdef CONFIG_TRACEPOINTS
void trace_s390_diagnose_norecursion(int diag_nr);
#else
static inline void trace_s390_diagnose_norecursion(int diag_nr) { }
#endif
#endif /* _TRACE_S390_DIAG_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
@@ -0,0 +1,58 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Tracepoint header for hiperdispatch
*
* Copyright IBM Corp. 2024
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM s390
#if !defined(_TRACE_S390_HIPERDISPATCH_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_S390_HIPERDISPATCH_H
#include <linux/tracepoint.h>
#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_PATH asm/trace
#define TRACE_INCLUDE_FILE hiperdispatch
TRACE_EVENT(s390_hd_work_fn,
TP_PROTO(int steal_time_percentage,
int entitled_core_count,
int highcap_core_count),
TP_ARGS(steal_time_percentage,
entitled_core_count,
highcap_core_count),
TP_STRUCT__entry(__field(int, steal_time_percentage)
__field(int, entitled_core_count)
__field(int, highcap_core_count)),
TP_fast_assign(__entry->steal_time_percentage = steal_time_percentage;
__entry->entitled_core_count = entitled_core_count;
__entry->highcap_core_count = highcap_core_count;),
TP_printk("steal: %d entitled_core_count: %d highcap_core_count: %d",
__entry->steal_time_percentage,
__entry->entitled_core_count,
__entry->highcap_core_count)
);
TRACE_EVENT(s390_hd_rebuild_domains,
TP_PROTO(int current_highcap_core_count,
int new_highcap_core_count),
TP_ARGS(current_highcap_core_count,
new_highcap_core_count),
TP_STRUCT__entry(__field(int, current_highcap_core_count)
__field(int, new_highcap_core_count)),
TP_fast_assign(__entry->current_highcap_core_count = current_highcap_core_count;
__entry->new_highcap_core_count = new_highcap_core_count),
TP_printk("change highcap_core_count: %u -> %u",
__entry->current_highcap_core_count,
__entry->new_highcap_core_count)
);
#endif /* _TRACE_S390_HIPERDISPATCH_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
@@ -0,0 +1,127 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Tracepoint definitions for the s390 zcrypt device driver
*
* Copyright IBM Corp. 2016,2025
* Author(s): Harald Freudenberger <freude@de.ibm.com>
*
* Currently there are two tracepoint events defined here.
* An s390_zcrypt_req request event occurs as soon as the request is
* recognized by the zcrypt ioctl function. This event may act as some kind
* of request-processing-starts-now indication.
* As late as possible within the zcrypt ioctl function there occurs the
* s390_zcrypt_rep event which may act as the point in time where the
* request has been processed by the kernel and the result is about to be
* transferred back to userspace.
* The glue which binds together request and reply event is the ptr
* parameter, which is the local buffer address where the request from
* userspace has been stored by the ioctl function.
*
* The main purpose of this zcrypt tracepoint api is to get some data for
* performance measurements together with information about on which card
* and queue the request has been processed. It is not an ffdc interface as
* there is already code in the zcrypt device driver to serve the s390
* debug feature interface.
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM s390
#if !defined(_TRACE_S390_ZCRYPT_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_S390_ZCRYPT_H
#include <linux/tracepoint.h>
#define TP_ICARSAMODEXPO 0x0001
#define TP_ICARSACRT 0x0002
#define TB_ZSECSENDCPRB 0x0003
#define TP_ZSENDEP11CPRB 0x0004
#define TP_HWRNGCPRB 0x0005
#define show_zcrypt_tp_type(type) \
__print_symbolic(type, \
{ TP_ICARSAMODEXPO, "ICARSAMODEXPO" }, \
{ TP_ICARSACRT, "ICARSACRT" }, \
{ TB_ZSECSENDCPRB, "ZSECSENDCPRB" }, \
{ TP_ZSENDEP11CPRB, "ZSENDEP11CPRB" }, \
{ TP_HWRNGCPRB, "HWRNGCPRB" })
/**
* trace_s390_zcrypt_req - zcrypt request tracepoint function
* @ptr: Address of the local buffer where the request from userspace
* is stored. Can be used as a unique id to relate together
* request and reply.
* @type: One of the TP_ defines above.
*
* Called when a request from userspace is recognised within the ioctl
* function of the zcrypt device driver and may act as an entry
* timestamp.
*/
TRACE_EVENT(s390_zcrypt_req,
TP_PROTO(void *ptr, u32 type),
TP_ARGS(ptr, type),
TP_STRUCT__entry(
__field(void *, ptr)
__field(u32, type)),
TP_fast_assign(
__entry->ptr = ptr;
__entry->type = type;),
TP_printk("ptr=%p type=%s",
__entry->ptr,
show_zcrypt_tp_type(__entry->type))
);
/**
* trace_s390_zcrypt_rep - zcrypt reply tracepoint function
* @ptr: Address of the local buffer where the request from userspace
* is stored. Can be used as a unique id to match together
* request and reply.
* @fc: Function code.
* @rc: The bare returncode as returned by the device driver ioctl
* function.
* @card: The adapter nr where this request was actually processed.
* @dom: Domain id of the device where this request was processed.
* @psmid: Unique id identifying this request/reply.
*
* Called upon recognising the reply from the crypto adapter. This
* message may act as the exit timestamp for the request but also
* carries some info about on which adapter the request was processed
* and the returncode from the device driver.
*/
TRACE_EVENT(s390_zcrypt_rep,
TP_PROTO(void *ptr, u32 fc, u32 rc, u16 card, u16 dom, u64 psmid),
TP_ARGS(ptr, fc, rc, card, dom, psmid),
TP_STRUCT__entry(
__field(void *, ptr)
__field(u32, fc)
__field(u32, rc)
__field(u16, card)
__field(u16, dom)
__field(u64, psmid)),
TP_fast_assign(
__entry->ptr = ptr;
__entry->fc = fc;
__entry->rc = rc;
__entry->card = card;
__entry->dom = dom;
__entry->psmid = psmid;),
TP_printk("ptr=%p fc=0x%04x rc=%d card=%u dom=%u psmid=0x%016lx",
__entry->ptr,
(unsigned int)__entry->fc,
(int)__entry->rc,
(unsigned short)__entry->card,
(unsigned short)__entry->dom,
(unsigned long)__entry->psmid)
);
#endif /* _TRACE_S390_ZCRYPT_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 zcrypt
#include <trace/define_trace.h>