|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] xl: free bitmaps on exit
Every invocation of xl via valgrind will show three leaks.
Since libxl_bitmap_alloc uses NOGC, the caller has to free the memory
after use. And since xl_ctx_free might be called before
parse_global_config, also move the libxl_bitmap_init calls into
xl_ctx_alloc.
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
---
tools/xl/xl.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tools/xl/xl.c b/tools/xl/xl.c
index 7d2142f16f..f5a17cf0d1 100644
--- a/tools/xl/xl.c
+++ b/tools/xl/xl.c
@@ -209,11 +209,8 @@ static void parse_global_config(const char *configfile,
if (!xlu_cfg_get_long (config, "max_maptrack_frames", &l, 0))
max_maptrack_frames = l;
- libxl_bitmap_init(&global_vm_affinity_mask);
libxl_cpu_bitmap_alloc(ctx, &global_vm_affinity_mask, 0);
- libxl_bitmap_init(&global_hvm_affinity_mask);
libxl_cpu_bitmap_alloc(ctx, &global_hvm_affinity_mask, 0);
- libxl_bitmap_init(&global_pv_affinity_mask);
libxl_cpu_bitmap_alloc(ctx, &global_pv_affinity_mask, 0);
if (!xlu_cfg_get_string (config, "vm.cpumask", &buf, 0))
@@ -323,11 +320,17 @@ void xl_ctx_alloc(void) {
exit(1);
}
+ libxl_bitmap_init(&global_vm_affinity_mask);
+ libxl_bitmap_init(&global_hvm_affinity_mask);
+ libxl_bitmap_init(&global_pv_affinity_mask);
libxl_childproc_setmode(ctx, &childproc_hooks, 0);
}
static void xl_ctx_free(void)
{
+ libxl_bitmap_dispose(&global_pv_affinity_mask);
+ libxl_bitmap_dispose(&global_hvm_affinity_mask);
+ libxl_bitmap_dispose(&global_vm_affinity_mask);
if (ctx) {
libxl_ctx_free(ctx);
ctx = NULL;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |