X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx.c;h=e8d32edb296c706730e843e2836d26c894542ad9;hb=1cd3b14a43f9c550a74c25dff43177e55192ceb1;hp=f3f51f13e350aca42f7459c6ea120654a493260e;hpb=c31f51134ba446530ff67fa0723ce634c70c2812;p=palacios.git diff --git a/palacios/src/palacios/vmx.c b/palacios/src/palacios/vmx.c index f3f51f1..e8d32ed 100644 --- a/palacios/src/palacios/vmx.c +++ b/palacios/src/palacios/vmx.c @@ -644,8 +644,8 @@ int v3_vmx_enter(struct guest_info * info) { v3_vmx_restore_vmcs(info); -#ifdef CONFIG_SYMBIOTIC - if (info->vm_info->sym_state.symcalls[info->cpu_id].sym_call_active == 0) { +#ifdef CONFIG_SYMCALL + if (info->sym_core_state.symcall_state.sym_call_active == 0) { update_irq_entry_state(info); } #else @@ -658,6 +658,9 @@ int v3_vmx_enter(struct guest_info * info) { vmcs_write(VMCS_GUEST_CR3, guest_cr3); } + // We do timer injection here to track real host time. + rdtscll(tmp_tsc); + v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc); rdtscll(info->time_state.cached_host_tsc); if (info->vm_info->run_state == VM_STOPPED) { @@ -678,11 +681,11 @@ int v3_vmx_enter(struct guest_info * info) { return -1; } - rdtscll(tmp_tsc); + // rdtscll(tmp_tsc); + // v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc); info->num_exits++; - v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc); /* Update guest state */ v3_vmx_save_vmcs(info); @@ -706,8 +709,8 @@ int v3_vmx_enter(struct guest_info * info) { exit_log[info->num_exits % 10] = exit_info; -#ifdef CONFIG_SYMBIOTIC - if (info->vm_info->sym_state.symcalls[info->cpu_id].sym_call_active == 0) { +#ifdef CONFIG_SYMCALL + if (info->sym_core_state.symcall_state.sym_call_active == 0) { update_irq_exit_state(info); } #else