1 /* 1 /* 2 * This file is subject to the terms and condi 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the mai 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 4 * for more details. 5 * 5 * 6 * KVM/MIPS: COP0 access histogram 6 * KVM/MIPS: COP0 access histogram 7 * 7 * 8 * Copyright (C) 2012 MIPS Technologies, Inc. 8 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved. 9 * Authors: Sanjay Lal <sanjayl@kymasys.com> 9 * Authors: Sanjay Lal <sanjayl@kymasys.com> 10 */ 10 */ 11 11 12 #include <linux/kvm_host.h> 12 #include <linux/kvm_host.h> 13 13 14 char *kvm_cop0_str[N_MIPS_COPROC_REGS] = { 14 char *kvm_cop0_str[N_MIPS_COPROC_REGS] = { 15 "Index", 15 "Index", 16 "Random", 16 "Random", 17 "EntryLo0", 17 "EntryLo0", 18 "EntryLo1", 18 "EntryLo1", 19 "Context", 19 "Context", 20 "PG Mask", 20 "PG Mask", 21 "Wired", 21 "Wired", 22 "HWREna", 22 "HWREna", 23 "BadVAddr", 23 "BadVAddr", 24 "Count", 24 "Count", 25 "EntryHI", 25 "EntryHI", 26 "Compare", 26 "Compare", 27 "Status", 27 "Status", 28 "Cause", 28 "Cause", 29 "EXC PC", 29 "EXC PC", 30 "PRID", 30 "PRID", 31 "Config", 31 "Config", 32 "LLAddr", 32 "LLAddr", 33 "Watch Lo", 33 "Watch Lo", 34 "Watch Hi", 34 "Watch Hi", 35 "X Context", 35 "X Context", 36 "Reserved", 36 "Reserved", 37 "Impl Dep", 37 "Impl Dep", 38 "Debug", 38 "Debug", 39 "DEPC", 39 "DEPC", 40 "PerfCnt", 40 "PerfCnt", 41 "ErrCtl", 41 "ErrCtl", 42 "CacheErr", 42 "CacheErr", 43 "TagLo", 43 "TagLo", 44 "TagHi", 44 "TagHi", 45 "ErrorEPC", 45 "ErrorEPC", 46 "DESAVE" 46 "DESAVE" 47 }; 47 }; 48 48 49 void kvm_mips_dump_stats(struct kvm_vcpu *vcpu 49 void kvm_mips_dump_stats(struct kvm_vcpu *vcpu) 50 { 50 { 51 #ifdef CONFIG_KVM_MIPS_DEBUG_COP0_COUNTERS 51 #ifdef CONFIG_KVM_MIPS_DEBUG_COP0_COUNTERS 52 int i, j; 52 int i, j; 53 53 54 kvm_info("\nKVM VCPU[%d] COP0 Access P 54 kvm_info("\nKVM VCPU[%d] COP0 Access Profile:\n", vcpu->vcpu_id); 55 for (i = 0; i < N_MIPS_COPROC_REGS; i+ 55 for (i = 0; i < N_MIPS_COPROC_REGS; i++) { 56 for (j = 0; j < N_MIPS_COPROC_ 56 for (j = 0; j < N_MIPS_COPROC_SEL; j++) { 57 if (vcpu->arch.cop0.st !! 57 if (vcpu->arch.cop0->stat[i][j]) 58 kvm_info("%s[% 58 kvm_info("%s[%d]: %lu\n", kvm_cop0_str[i], j, 59 vcpu- !! 59 vcpu->arch.cop0->stat[i][j]); 60 } 60 } 61 } 61 } 62 #endif 62 #endif 63 } 63 } 64 64
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.