[libvirt] [PATCH 6/7] Do not use vshPrintPinInfo in iothreadinfo
John Ferlan
jferlan at redhat.com
Thu Mar 26 12:50:24 UTC 2015
On 03/25/2015 02:39 PM, Ján Tomko wrote:
> Just format the bitmap via virBitmapFormat.
> ---
> tools/virsh-domain.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index afd92b1..cb9cb9d 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -6834,6 +6834,7 @@ cmdIOThreadInfo(vshControl *ctl, const vshCmd *cmd)
> size_t i;
> int maxcpu;
> unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
> + virBitmapPtr map = NULL;
>
> VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
> VSH_EXCLUSIVE_OPTIONS_VAR(current, config);
> @@ -6863,16 +6864,24 @@ cmdIOThreadInfo(vshControl *ctl, const vshCmd *cmd)
> _("IOThread ID"), _("CPU Affinity"));
> vshPrintExtra(ctl, "---------------------------------------------------\n");
> for (i = 0; i < niothreads; i++) {
> + char *mapstr = NULL;
Considering the other discussion about Set/Add/Del IOThread and since
you're modifying the code anyway...
How about adding a check for:
if (info[i].iothread_id == 0)
continue;
That way we can "prepare" for a configuration that may have "holes" on
the delete and won't have some future issue with a 1.2.14 virsh
receiving something unexpected from a 1.2.15 daemon.
John
> + virBitmapFree(map);
> + map = virBitmapNewData(info[i]->cpumap, info[i]->cpumaplen);
> + if (!map)
> + goto cleanup;
> +
> + if (!(mapstr = virBitmapFormat(map)))
> + goto cleanup;
>
> vshPrint(ctl, " %-15u ", info[i]->iothread_id);
> - ignore_value(vshPrintPinInfo(info[i]->cpumap, info[i]->cpumaplen,
> - maxcpu, 0));
> + vshPrint(ctl, " %-15s ", mapstr);
> vshPrint(ctl, "\n");
> virDomainIOThreadInfoFree(info[i]);
> }
> VIR_FREE(info);
>
> cleanup:
> + virBitmapFree(map);
> virDomainFree(dom);
> return niothreads >= 0;
> }
>
More information about the libvir-list
mailing list