#ifdef CONFIG_SYMBIOTIC_SWAP_TELEMETRY
-static void telemetry_cb(struct guest_info * info, void * private_data, char * hdr) {
- struct v3_sym_swap_state * swap_state = &(info->vm_info->swap_state);
+static void telemetry_cb(struct v3_vm_info * vm, void * private_data, char * hdr) {
+ struct v3_sym_swap_state * swap_state = &(vm->swap_state);
V3_Print("%sSymbiotic Swap:\n", hdr);
V3_Print("%s\tRead faults=%d\n", hdr, swap_state->read_faults);
swap_state->shdw_ptr_ht = v3_create_htable(0, swap_hash_fn, swap_eq_fn);
#ifdef CONFIG_SYMBIOTIC_SWAP_TELEMETRY
- if (info->enable_telemetry) {
+ if (vm->enable_telemetry) {
v3_add_telemetry_cb(vm, telemetry_cb, NULL);
}
#endif
if (shdw_ptr_list == NULL) {
shdw_ptr_list = (struct list_head *)V3_Malloc(sizeof(struct list_head *));
+#ifdef CONFIG_SYMBIOTIC_SWAP_TELEMETRY
swap_state->list_size++;
+#endif
INIT_LIST_HEAD(shdw_ptr_list);
v3_htable_insert(swap_state->shdw_ptr_ht, (addr_t)*(uint32_t *)guest_pte, (addr_t)shdw_ptr_list);
}
if (shdw_ptr == NULL) {
PrintError("MEMORY LEAK\n");
- telemetry_cb(info, NULL, "");
+#ifdef CONFIG_SYMBIOTIC_SWAP_TELEMETRY
+ telemetry_cb(vm, NULL, "");
+#endif
return 0;
}