See previous comments about the interface to libxl_get_topoplogy and
leaking the returned pointer value.
On Fri, 2010-11-26 at 07:10 +0000, Juergen Gross wrote:
> + if (libxl_get_freecpus(&ctx, &freemap)) {
> + fprintf(stderr, "libxl_get_freecpus failed\n");
> + return -ERROR_FAIL;
> + }
> +
> + topology = libxl_get_topologyinfo(&ctx);
> + if (topology == NULL) {
> + fprintf(stderr, "libxl_get_topologyinfo failed\n");
> + return -ERROR_FAIL;
> + }
> +
> + n = 0;
> + for (cpu = 0; cpu < topology->nodemap.entries; cpu++) {
> + if (libxl_cpumap_test(&freemap, cpu) &&
> + (topology->nodemap.array[cpu] == node) &&
> + !libxl_cpupool_cpuadd(&ctx, poolid, cpu)) {
> + n++;
> + }
> + }
This sequence of actions look like they would make a useful addition to
the libxl interface as a helper function.
Not sure what it would be called, perhaps:
libxl_cpupool_cpuadd_node(&ctx, poolid, node)
?
> + for (p = 0; p < n_pools; p++) {
> + if (poolinfo[p].poolid == poolid) {
> + for (cpu = 0; cpu < topology->nodemap.entries; cpu++) {
> + if ((topology->nodemap.array[cpu] == node) &&
> + libxl_cpumap_test(&poolinfo[p].cpumap, cpu) &&
> + !libxl_cpupool_cpuremove(&ctx, poolid, cpu)) {
> + n++;
> + }
> + }
> + }
> + }
also a helper function?
libxl_cpupool_cpuremove_node(&ctx, poolid, node)
Isn't there an existing function to find a poolinfo from a poolid? (if
not then should there be?)
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|