X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_telemetry.c;h=c0eb38d3cdb1c3b0506adeb72fddf68a4205073e;hb=164bd99da7605dfb5f8a56338e54c924b2a583a6;hp=d12a5a7c5828e1ee70ee76a433d249923ee4dd6c;hpb=a686a57429dcd9fa2f701228227dadcd096df8ed;p=palacios.git diff --git a/palacios/src/palacios/vmm_telemetry.c b/palacios/src/palacios/vmm_telemetry.c index d12a5a7..c0eb38d 100644 --- a/palacios/src/palacios/vmm_telemetry.c +++ b/palacios/src/palacios/vmm_telemetry.c @@ -20,10 +20,12 @@ #include #include #include +#include #include #include + #ifdef V3_CONFIG_TELEMETRY_GRANULARITY #define DEFAULT_GRANULARITY V3_CONFIG_TELEMETRY_GRANULARITY #else @@ -266,15 +268,33 @@ static void print_core_telemetry(struct guest_info * core, char *hdr_buf) } do { - evt = rb_entry(node, struct exit_event, tree_node); - const char * code_str = vmexit_code_to_str(evt->exit_code); - - V3_Print("%s%s:%sCnt=%u,%sAvg. Time=%u\n", - hdr_buf, code_str, - (strlen(code_str) > 13) ? "\t" : "\t\t", - evt->cnt, - (evt->cnt >= 100) ? "\t" : "\t\t", - (uint32_t)(evt->handler_time / evt->cnt)); + extern v3_cpu_arch_t v3_mach_type; + const char * code_str = NULL; + + evt = rb_entry(node, struct exit_event, tree_node); + + switch (v3_mach_type) { + case V3_SVM_CPU: + case V3_SVM_REV3_CPU: + + code_str = v3_svm_exit_code_to_str(evt->exit_code); + break; + case V3_VMX_CPU: + case V3_VMX_EPT_CPU: + case V3_VMX_EPT_UG_CPU: + code_str = v3_vmx_exit_code_to_str(evt->exit_code); + break; + + default: + continue; + } + + V3_Print("%s%s:%sCnt=%u,%sAvg. Time=%u\n", + hdr_buf, code_str, + (strlen(code_str) > 13) ? "\t" : "\t\t", + evt->cnt, + (evt->cnt >= 100) ? "\t" : "\t\t", + (uint32_t)(evt->handler_time / evt->cnt)); } while ((node = v3_rb_next(node))); return; }