X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx_handler.c;h=357f0d21ac29f7a72c80bfa91f962be08b501de1;hb=c5dc4eb6184d792c87f8d17bfec558a1316718ce;hp=f24324ed23f8d531ffdc1bbdf1e759385a88210f;hpb=331eb3b042d3456e1eaf33eb9e32606774b715fb;p=palacios.git diff --git a/palacios/src/palacios/vmx_handler.c b/palacios/src/palacios/vmx_handler.c index f24324e..357f0d2 100644 --- a/palacios/src/palacios/vmx_handler.c +++ b/palacios/src/palacios/vmx_handler.c @@ -32,6 +32,11 @@ #include #include +#ifndef CONFIG_DEBUG_VMX +#undef PrintDebug +#define PrintDebug(fmt, args...) +#endif + #ifdef CONFIG_TELEMETRY #include #endif @@ -50,10 +55,6 @@ int v3_handle_vmx_exit(struct guest_info * info, struct vmx_exit_info * exit_inf v3_print_vmcs(); */ -#ifdef CONFIG_VNET_PROFILE - uint64_t start, end; - rdtscll(start); -#endif #ifdef CONFIG_TELEMETRY if (info->vm_info->enable_telemetry) { @@ -98,6 +99,18 @@ int v3_handle_vmx_exit(struct guest_info * info, struct vmx_exit_info * exit_inf } break; + + case VMEXIT_RDTSC: +#ifdef CONFIG_DEBUG_TIME + PrintDebug("RDTSC\n"); +#endif + if (v3_handle_rdtsc(info) == -1) { + PrintError("Error Handling RDTSC instruction\n"); + return -1; + } + + break; + case VMEXIT_CPUID: if (v3_handle_cpuid(info) == -1) { PrintError("Error Handling CPUID instruction\n"); @@ -226,28 +239,13 @@ int v3_handle_vmx_exit(struct guest_info * info, struct vmx_exit_info * exit_inf return -1; } + #ifdef CONFIG_TELEMETRY if (info->vm_info->enable_telemetry) { v3_telemetry_end_exit(info, exit_info->exit_reason); } #endif -#ifdef CONFIG_VNET_PROFILE - rdtscll(end); - info->vnet_times.total_exit_time = end - start; - if(info->vnet_times.print) - PrintError("Vnet_profiling: total_exit_time: %ld, total_handle_time: %ld memcpy_time: %ld copy_from_guest: %ld copy_to_guest: %ld malloc_free: %ld, route_lookup: %ld\n", - (long)info->vnet_times.total_exit_time, - (long)info->vnet_times.total_handle_time, - (long)info->vnet_times.memcpy_time, - (long)info->vnet_times.time_copy_from_guest, - (long)info->vnet_times.time_copy_to_guest, - (long)info->vnet_times.time_mallocfree, - (long)info->vnet_times.time_route_lookup); - - info->vnet_times.print = false; -#endif - return 0; }