X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_shadow_paging.c;h=d3e4c931b37c05a8144b237706b4bd2ca52a35d7;hb=36973b53a5876a555eb59be0b0fb5f1f49686696;hp=b46469ca86331445f15f60454617dc45bc3c8b48;hpb=c0e8207d10b6b077c3fac4fb013ba7485f3a6391;p=palacios.git diff --git a/palacios/src/palacios/vmm_shadow_paging.c b/palacios/src/palacios/vmm_shadow_paging.c index b46469c..d3e4c93 100644 --- a/palacios/src/palacios/vmm_shadow_paging.c +++ b/palacios/src/palacios/vmm_shadow_paging.c @@ -33,15 +33,15 @@ -#ifdef CONFIG_SHADOW_PAGING_TELEMETRY +#ifdef V3_CONFIG_SHADOW_PAGING_TELEMETRY #include #endif -#ifdef CONFIG_SYMBIOTIC_SWAP +#ifdef V3_CONFIG_SYMBIOTIC_SWAP #include #endif -#ifndef CONFIG_DEBUG_SHADOW_PAGING +#ifndef V3_CONFIG_DEBUG_SHADOW_PAGING #undef PrintDebug #define PrintDebug(fmt, args...) #endif @@ -107,7 +107,7 @@ int V3_deinit_shdw_paging() { ***/ -#ifdef CONFIG_SHADOW_PAGING_TELEMETRY +#ifdef V3_CONFIG_SHADOW_PAGING_TELEMETRY static void telemetry_cb(struct v3_vm_info * vm, void * private_data, char * hdr) { int i = 0; for (i = 0; i < vm->num_cores; i++) { @@ -136,7 +136,7 @@ int v3_init_shdw_pg_state(struct guest_info * core) { } -#ifdef CONFIG_SHADOW_PAGING_TELEMETRY +#ifdef V3_CONFIG_SHADOW_PAGING_TELEMETRY v3_add_telemetry_cb(core->vm_info, telemetry_cb, NULL); #endif @@ -152,9 +152,6 @@ int v3_deinit_shdw_pg_state(struct guest_info * core) { return -1; } -#ifdef CONFIG_SHADOW_PAGING_TELEMETRY - v3_remove_telemetry_cb(core->vm_info, telemetry_cb, NULL); -#endif return 0; } @@ -200,6 +197,11 @@ int v3_init_shdw_impl(struct v3_vm_info * vm) { int v3_deinit_shdw_impl(struct v3_vm_info * vm) { struct v3_shdw_pg_impl * impl = vm->shdw_impl.current_impl; + if (impl == NULL) { + // Shadow paging not implemented + return 0; + } + if (impl->deinit(vm) == -1) { PrintError("Error deinitializing shadow paging implementation\n"); return -1; @@ -302,7 +304,7 @@ int v3_handle_shadow_invlpg(struct guest_info * core) { int v3_inject_guest_pf(struct guest_info * core, addr_t fault_addr, pf_error_t error_code) { core->ctrl_regs.cr2 = fault_addr; -#ifdef CONFIG_SHADOW_PAGING_TELEMETRY +#ifdef V3_CONFIG_SHADOW_PAGING_TELEMETRY core->shdw_pg_state.guest_faults++; #endif