seq_printf(s, "\nMemory Regions\n");
for (j=0;j<mem->num_regions;j++) {
- seq_printf(s," region %u has HPAs 0x%p-0x%p (node %d)\n",
+ seq_printf(s," region %u has HPAs 0x%p-0x%p (node %d) %s %s\n",
j, mem->region[j].host_paddr, mem->region[j].host_paddr+mem->region[j].size,
- numa_addr_to_node((uintptr_t)(mem->region[j].host_paddr)));
+ numa_addr_to_node((uintptr_t)(mem->region[j].host_paddr)),
+ mem->region[j].swapped ? "swapped" : "",
+ mem->region[j].pinned ? "pinned" : "");
}
}
seq_printf(s,
/* Stop and free any running VMs */
for (i = 0; i < MAX_VMS; i++) {
- if (guest_map[i] != NULL) {
- guest = (struct v3_guest *)guest_map[i];
+ if (guest_map[i] != NULL) {
+ guest = (struct v3_guest *)(guest_map[i]);
+
+ if (!guest->v3_ctx) {
+ ERROR("Orphan VM detected and skipped: index=%d name=%s\n", i, guest->name);
+ continue;
+ }
if (v3_stop_vm(guest->v3_ctx) < 0)
ERROR("Couldn't stop VM %d\n", i);