pool = find_mempool(zone, addr);
if ((pool == NULL) || (order > pool->pool_order)) {
- WARNING("Attempted to free an invalid page address (%p)\n", (void *)addr);
- palacios_spinlock_unlock_irqrestore(&(zone->lock), flags);
+ WARNING("Attempted to free an invalid page address (%p) - pool=%p order=%lu\n", (void *)addr,pool,order);
+ palacios_spinlock_unlock_irqrestore(&(zone->lock), flags);
return;
}
int V3_deinit_cpu_mapper() {
destroy_default_cpu_mapper();
- v3_free_htable(master_cpu_mapper_table, 1, 1);
+ // we must leave the keys and values unfreed
+ // since we have no idea whether they are heap or otherwise
+ // the user must have done appropriate unregisters before this
+ v3_free_htable(master_cpu_mapper_table, 0, 0);
return 0;
}
static int destroy_default_cpu_mapper()
{
v3_unregister_cpu_mapper(default_mapper_impl.name);
+ // note - is not deleted since it's a global...
return 0;
}
int V3_deinit_scheduling()
{
destroy_host_scheduler();
- v3_free_htable(master_scheduler_table,1,1);
+ // important not to remove any keys or values since we don't know
+ // if they are malloced or other
+ v3_free_htable(master_scheduler_table,0,0);
return 0;
}
static int destroy_host_scheduler()
{
v3_unregister_scheduler(host_sched_impl.name);
+ // no deletion of this since it's a pointer to a global var
return 0;
}
The tool assumes you have already built Palacios, the Linux embedding,
and the Linux user-sapce tools. If you haven't done this, hit CTRL-C
now, configure and build Palacios, the user-space tools, and run
-v3_config.pl.
+v3_config_v3vee.pl.
This tool also assumes that you have the environment produced by
-v3_config.pl sourced:
+v3_config_v3vee.pl sourced:
source ./ENV