]> Git Repo - linux.git/blob - tools/perf/util/s390-cpumcf-kernel.h
Linux 6.14-rc3
[linux.git] / tools / perf / util / s390-cpumcf-kernel.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for s390 CPU measurement counter set diagnostic facility
4  *
5  * Copyright IBM Corp. 2019
6    Author(s): Hendrik Brueckner <[email protected]>
7  *              Thomas Richter <[email protected]>
8  */
9 #ifndef S390_CPUMCF_KERNEL_H
10 #define S390_CPUMCF_KERNEL_H
11
12 #define S390_CPUMCF_DIAG_DEF    0xfeef  /* Counter diagnostic entry ID */
13 #define PERF_EVENT_CPUM_CF_DIAG 0xBC000 /* Event: Counter sets */
14 #define PERF_EVENT_CPUM_SF_DIAG 0xBD000 /* Event: Combined-sampling */
15 #define PERF_EVENT_PAI_CRYPTO_ALL       0x1000 /* Event: CRYPTO_ALL */
16 #define PERF_EVENT_PAI_NNPA_ALL 0x1800 /* Event: NNPA_ALL */
17
18 struct cf_ctrset_entry {        /* CPU-M CF counter set entry (8 byte) */
19         unsigned int def:16;    /* 0-15  Data Entry Format */
20         unsigned int set:16;    /* 16-23 Counter set identifier */
21         unsigned int ctr:16;    /* 24-39 Number of stored counters */
22         unsigned int res1:16;   /* 40-63 Reserved */
23 };
24
25 struct cf_trailer_entry {       /* CPU-M CF trailer for raw traces (64 byte) */
26         /* 0 - 7 */
27         union {
28                 struct {
29                         unsigned int clock_base:1;      /* TOD clock base */
30                         unsigned int speed:1;           /* CPU speed */
31                         /* Measurement alerts */
32                         unsigned int mtda:1;    /* Loss of MT ctr. data alert */
33                         unsigned int caca:1;    /* Counter auth. change alert */
34                         unsigned int lcda:1;    /* Loss of counter data alert */
35                 };
36                 unsigned long flags;            /* 0-63    All indicators */
37         };
38         /* 8 - 15 */
39         unsigned int cfvn:16;                   /* 64-79   Ctr First Version */
40         unsigned int csvn:16;                   /* 80-95   Ctr Second Version */
41         unsigned int cpu_speed:32;              /* 96-127  CPU speed */
42         /* 16 - 23 */
43         unsigned long timestamp;                /* 128-191 Timestamp (TOD) */
44         /* 24 - 55 */
45         union {
46                 struct {
47                         unsigned long progusage1;
48                         unsigned long progusage2;
49                         unsigned long progusage3;
50                         unsigned long tod_base;
51                 };
52                 unsigned long progusage[4];
53         };
54         /* 56 - 63 */
55         unsigned int mach_type:16;              /* Machine type */
56         unsigned int res1:16;                   /* Reserved */
57         unsigned int res2:32;                   /* Reserved */
58 };
59
60 #define CPUMF_CTR_SET_BASIC     0       /* Basic Counter Set */
61 #define CPUMF_CTR_SET_USER      1       /* Problem-State Counter Set */
62 #define CPUMF_CTR_SET_CRYPTO    2       /* Crypto-Activity Counter Set */
63 #define CPUMF_CTR_SET_EXT       3       /* Extended Counter Set */
64 #define CPUMF_CTR_SET_MT_DIAG   4       /* MT-diagnostic Counter Set */
65 #endif
This page took 0.050098 seconds and 4 git commands to generate.