hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
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
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Support for s390 CPU measurement counter set diagnostic facility
 *
 * Copyright IBM Corp. 2019
   Author(s): Hendrik Brueckner <brueckner@linux.ibm.com>
 *        Thomas Richter <tmricht@linux.ibm.com>
 */
#ifndef S390_CPUMCF_KERNEL_H
#define S390_CPUMCF_KERNEL_H
 
#define    S390_CPUMCF_DIAG_DEF    0xfeef    /* Counter diagnostic entry ID */
#define    PERF_EVENT_CPUM_CF_DIAG    0xBC000    /* Event: Counter sets */
#define PERF_EVENT_CPUM_SF_DIAG    0xBD000 /* Event: Combined-sampling */
 
struct cf_ctrset_entry {    /* CPU-M CF counter set entry (8 byte) */
   unsigned int def:16;    /* 0-15  Data Entry Format */
   unsigned int set:16;    /* 16-23 Counter set identifier */
   unsigned int ctr:16;    /* 24-39 Number of stored counters */
   unsigned int res1:16;    /* 40-63 Reserved */
};
 
struct cf_trailer_entry {    /* CPU-M CF trailer for raw traces (64 byte) */
   /* 0 - 7 */
   union {
       struct {
           unsigned int clock_base:1;    /* TOD clock base */
           unsigned int speed:1;        /* CPU speed */
           /* Measurement alerts */
           unsigned int mtda:1;    /* Loss of MT ctr. data alert */
           unsigned int caca:1;    /* Counter auth. change alert */
           unsigned int lcda:1;    /* Loss of counter data alert */
       };
       unsigned long flags;        /* 0-63    All indicators */
   };
   /* 8 - 15 */
   unsigned int cfvn:16;            /* 64-79   Ctr First Version */
   unsigned int csvn:16;            /* 80-95   Ctr Second Version */
   unsigned int cpu_speed:32;        /* 96-127  CPU speed */
   /* 16 - 23 */
   unsigned long timestamp;        /* 128-191 Timestamp (TOD) */
   /* 24 - 55 */
   union {
       struct {
           unsigned long progusage1;
           unsigned long progusage2;
           unsigned long progusage3;
           unsigned long tod_base;
       };
       unsigned long progusage[4];
   };
   /* 56 - 63 */
   unsigned int mach_type:16;        /* Machine type */
   unsigned int res1:16;            /* Reserved */
   unsigned int res2:32;            /* Reserved */
};
 
#define    CPUMF_CTR_SET_BASIC    0    /* Basic Counter Set */
#define    CPUMF_CTR_SET_USER    1    /* Problem-State Counter Set */
#define    CPUMF_CTR_SET_CRYPTO    2    /* Crypto-Activity Counter Set */
#define    CPUMF_CTR_SET_EXT    3    /* Extended Counter Set */
#define    CPUMF_CTR_SET_MT_DIAG    4    /* MT-diagnostic Counter Set */
#endif