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
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) {
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);
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