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
| /*
| * This file is subject to the terms and conditions of the GNU General Public
| * License. See the file "COPYING" in the main directory of this archive
| * for more details.
| *
| * KVM/MIPS: COP0 access histogram
| *
| * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
| * Authors: Sanjay Lal <sanjayl@kymasys.com>
| */
|
| #include <linux/kvm_host.h>
|
| char *kvm_cop0_str[N_MIPS_COPROC_REGS] = {
| "Index",
| "Random",
| "EntryLo0",
| "EntryLo1",
| "Context",
| "PG Mask",
| "Wired",
| "HWREna",
| "BadVAddr",
| "Count",
| "EntryHI",
| "Compare",
| "Status",
| "Cause",
| "EXC PC",
| "PRID",
| "Config",
| "LLAddr",
| "Watch Lo",
| "Watch Hi",
| "X Context",
| "Reserved",
| "Impl Dep",
| "Debug",
| "DEPC",
| "PerfCnt",
| "ErrCtl",
| "CacheErr",
| "TagLo",
| "TagHi",
| "ErrorEPC",
| "DESAVE"
| };
|
| void kvm_mips_dump_stats(struct kvm_vcpu *vcpu)
| {
| #ifdef CONFIG_KVM_MIPS_DEBUG_COP0_COUNTERS
| int i, j;
|
| kvm_info("\nKVM VCPU[%d] COP0 Access Profile:\n", vcpu->vcpu_id);
| for (i = 0; i < N_MIPS_COPROC_REGS; i++) {
| for (j = 0; j < N_MIPS_COPROC_SEL; j++) {
| if (vcpu->arch.cop0->stat[i][j])
| kvm_info("%s[%d]: %lu\n", kvm_cop0_str[i], j,
| vcpu->arch.cop0->stat[i][j]);
| }
| }
| #endif
| }
|
|