v3_cfg_tree_t *vm_tree = info->vm_info->cfg_data->cfg;
v3_cfg_tree_t *pg_tree = v3_cfg_subtree(vm_tree, "paging");
- char *pg_type = v3_cfg_val(vm_tree, "paging");
char *pg_mode = v3_cfg_val(pg_tree, "mode");
- PrintDebug("Paging mode specified as %s(%s)\n", pg_type, pg_mode);
+ PrintDebug("Paging mode specified as %s\n", pg_mode);
- if (pg_type) {
- if ((strcasecmp(pg_type, "nested") == 0)) {
+ if (pg_mode) {
+ if ((strcasecmp(pg_mode, "nested") == 0)) {
if (v3_cpu_types[info->cpu_id] == V3_SVM_REV3_CPU) {
info->shdw_pg_mode = NESTED_PAGING;
} else {
PrintError("Nested paging not supported on this hardware. Defaulting to shadow paging\n");
info->shdw_pg_mode = SHADOW_PAGING;
}
- } else if ((strcasecmp(pg_type, "shadow") == 0)) {
+ } else if ((strcasecmp(pg_mode, "shadow") == 0)) {
info->shdw_pg_mode = SHADOW_PAGING;
} else {
- PrintError("Invalid paging type (%s) specified in configuration. Defaulting to shadow paging\n", pg_type);
+ PrintError("Invalid paging mode (%s) specified in configuration. Defaulting to shadow paging\n", pg_mode);
info->shdw_pg_mode = SHADOW_PAGING;
}
} else {
- PrintDebug("No paging type specified in configuration.\n");
+ PrintDebug("No paging mode specified in configuration.\n");
info->shdw_pg_mode = SHADOW_PAGING;
}
if (info->shdw_pg_mode == NESTED_PAGING) {
- PrintDebug("Guest Page Mode: NESTED_PAGING\n");
+ PrintDebug("Guest Paging Mode: NESTED_PAGING\n");
} else if (info->shdw_pg_mode == SHADOW_PAGING) {
- PrintDebug("Guest Page Mode: SHADOW_PAGING\n");
+ PrintDebug("Guest Paging Mode: SHADOW_PAGING\n");
} else {
PrintError("Guest paging mode incorrectly set.\n");
return -1;
int v3_init_shdw_impl(struct v3_vm_info * vm) {
struct v3_shdw_impl_state * impl_state = &(vm->shdw_impl);
v3_cfg_tree_t * pg_cfg = v3_cfg_subtree(vm->cfg_data->cfg, "paging");
- char * pg_type = v3_cfg_val(vm->cfg_data->cfg, "paging");
char * pg_mode = v3_cfg_val(pg_cfg, "mode");
+ char * pg_strat = v3_cfg_val(pg_cfg, "strategy");
struct v3_shdw_pg_impl * impl = NULL;
PrintDebug("Checking if shadow paging requested.\n");
- if (pg_type && (strcasecmp(pg_type, "nested") == 0)) {
+ if (pg_mode && (strcasecmp(pg_mode, "nested") == 0)) {
PrintDebug("Nested paging specified - not initializing shadow paging.\n");
return 0;
}
V3_Print("Initialization of Shadow Paging implementation\n");
- impl = (struct v3_shdw_pg_impl *)v3_htable_search(master_shdw_pg_table, (addr_t)pg_mode);
+ impl = (struct v3_shdw_pg_impl *)v3_htable_search(master_shdw_pg_table, (addr_t)pg_strat);
if (impl == NULL) {
- PrintError("Could not find shadow paging impl (%s)\n", pg_mode);
+ PrintError("Could not find shadow paging impl (%s)\n", pg_strat);
return -1;
}
<!-- Basic VMM system flags -->
<telemetry>enable</telemetry>
- <paging mode="VTLB">shadow</paging>
- <!-- <paging mode="4KB">nested</paging> -->
+ <paging mode="shadow">
+ <strategy>VTLB</strategy>
+ </paging>
+<!--
+ <paging mode="nested">
+ <pagesize>4KB</pagesize>
+ </paging>
+-->
<schedule_hz>100</schedule_hz>
<cores count="1"><core /></cores>