Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/psr.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * psr.h: Platform Shared Resource related service for guest.
3
 *
4
 * Copyright (c) 2014, Intel Corporation
5
 * Author: Dongxiao Xu <dongxiao.xu@intel.com>
6
 *
7
 * This program is free software; you can redistribute it and/or modify it
8
 * under the terms and conditions of the GNU General Public License,
9
 * version 2, as published by the Free Software Foundation.
10
 *
11
 * This program is distributed in the hope it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14
 * more details.
15
 */
16
#ifndef __ASM_PSR_H__
17
#define __ASM_PSR_H__
18
19
#include <xen/types.h>
20
21
/* CAT cpuid level */
22
0
#define PSR_CPUID_LEVEL_CAT             0x10
23
24
/* Resource Type Enumeration */
25
0
#define PSR_RESOURCE_TYPE_L3            0x2
26
0
#define PSR_RESOURCE_TYPE_L2            0x4
27
28
/* L3 Monitoring Features */
29
0
#define PSR_CMT_L3_OCCUPANCY            0x1
30
31
/* CDP Capability */
32
0
#define PSR_CAT_CDP_CAPABILITY          (1u << 2)
33
34
/* L3 CDP Enable bit*/
35
0
#define PSR_L3_QOS_CDP_ENABLE_BIT       0x0
36
37
/* Used by psr_get_info() */
38
0
#define PSR_INFO_IDX_COS_MAX            0
39
0
#define PSR_INFO_IDX_CAT_CBM_LEN        1
40
0
#define PSR_INFO_IDX_CAT_FLAG           2
41
0
#define PSR_INFO_ARRAY_SIZE             3
42
43
struct psr_cmt_l3 {
44
    unsigned int features;
45
    unsigned int upscaling_factor;
46
    unsigned int rmid_max;
47
};
48
49
struct psr_cmt {
50
    unsigned int rmid_max;
51
    unsigned int features;
52
    domid_t *rmid_to_dom;
53
    struct psr_cmt_l3 l3;
54
};
55
56
enum cbm_type {
57
    PSR_CBM_TYPE_L3,
58
    PSR_CBM_TYPE_L3_CODE,
59
    PSR_CBM_TYPE_L3_DATA,
60
    PSR_CBM_TYPE_L2,
61
    PSR_CBM_TYPE_UNKNOWN,
62
};
63
64
extern struct psr_cmt *psr_cmt;
65
66
static inline bool_t psr_cmt_enabled(void)
67
39.5k
{
68
39.5k
    return !!psr_cmt;
69
39.5k
}
Unexecuted instantiation: domctl.c:psr_cmt_enabled
Unexecuted instantiation: domain.c:psr_cmt_enabled
psr.c:psr_cmt_enabled
Line
Count
Source
67
39.5k
{
68
39.5k
    return !!psr_cmt;
69
39.5k
}
Unexecuted instantiation: sysctl.c:psr_cmt_enabled
70
71
int psr_alloc_rmid(struct domain *d);
72
void psr_free_rmid(struct domain *d);
73
void psr_ctxt_switch_to(struct domain *d);
74
75
int psr_get_info(unsigned int socket, enum cbm_type type,
76
                 uint32_t data[], unsigned int array_len);
77
int psr_get_val(struct domain *d, unsigned int socket,
78
                uint32_t *val, enum cbm_type type);
79
int psr_set_val(struct domain *d, unsigned int socket,
80
                uint64_t val, enum cbm_type type);
81
82
void psr_domain_init(struct domain *d);
83
void psr_domain_free(struct domain *d);
84
85
#endif /* __ASM_PSR_H__ */
86
87
/*
88
 * Local variables:
89
 * mode: C
90
 * c-file-style: "BSD"
91
 * c-basic-offset: 4
92
 * tab-width: 4
93
 * indent-tabs-mode: nil
94
 * End:
95
 */