On 01/28/2011 09:42 AM, Michal Privoznik wrote: > This will iterate over all NUMA nodes, showing > free memory for each and sum at the end. > Existing default behavior is not changed. > --- > tools/virsh.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++--------- > 1 files changed, 61 insertions(+), 12 deletions(-) > > static int > cmdFreecell(vshControl *ctl, const vshCmd *cmd) > { > + int func_ret = FALSE; > int ret; > int cell, cell_given; > unsigned long long memory; > + unsigned long long *nodes = NULL; > + int all_given; At first, I thought to suggest s/int/bool/, given it's use > + virNodeInfo info; > + > > if (!vshConnectionUsability(ctl, ctl->conn)) > return FALSE; > > cell = vshCommandOptInt(cmd, "cellno", &cell_given); > - if (!cell_given) { > - memory = virNodeGetFreeMemory(ctl->conn); > - if (memory == 0) > - return FALSE; > + all_given = vshCommandOptBool(cmd, "all"); ...but this (still) returns int instead of bool (we should probably fix that, but that's a separate cleanup patch). > + > + if (all_given && cell_given) { > + vshError(ctl, "%s", _("--cellno and --all are mutual exclusive. Please choose only one.")); s/mutual/mutually/ I'd drop the last sentence; it adds politeness, but not any new information over the first sentence, and just makes the line longer than 80 columns > + goto cleanup; > + } > + > + if (all_given) { > + if (virNodeGetInfo(ctl->conn, &info) < 0) { > + vshError(ctl, "%s", _("failed to get NUMA nodes count")); > + goto cleanup; > + } > + > + if (!info.nodes) { > + vshError(ctl, "%s", _("no NUMA nodes presented")); s/presented/present/ > + memory = 0; > + for (cell = 0; cell < info.nodes; cell++) { > + vshPrint(ctl, "%d: %llu kB\n", cell, (nodes[cell]/1024)); Should we try to align columns here? > + memory += nodes[cell]; > + } > + > + vshPrintExtra(ctl, "--------------------\n"); > + vshPrintExtra(ctl, "%s %llu kB\n",_("Total"), memory/1024); and also here? But I like the idea. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list