gpt4 book ai didi

operating-system - libvirt的api virDomainGetVcpus中的cpumaps和maplen参数是什么

转载 作者:行者123 更新时间:2023-12-04 08:29:37 25 4
gpt4 key购买 nike

我正在尝试获取在我的机器上运行的 vcpus 的信息,同样我正在使用 libvirt。
我无法理解如何使用具有 cpumaps 和 maplen 参数的 api virDomainGetVcpus。

我正在使用 C。
如果您有一些见解,请告诉我。

谢谢。

最佳答案

您需要使用 virDomainGetInfo 和 virNodeGetInfo 来 guest guest CPU 的数量和主机 CPU 的数量。然后你可以分配一个合适大小的 map 。这段代码可以解决问题:

 virNodeInfo nodeinfo;
virDomainInfo dominfo;
int nhostcpus;

if (virNodeGetInfo(conn, &nodeinfo) < 0)
return -1;

nhostcpus = VIR_NODEINFO_MAXCPUS(nodeinfo);

if (virDomainGetInfo(dom, &dominfo) != 0)
return -1;

cpuinfo = malloc(sizeof(virVcpuInfo)*dominfo.nrVirtCpu);
cpumaplen = VIR_CPU_MAPLEN(nhostcpu);
cpumaps = vshMalloc(ctl, dominfo.nrVirtCpu * cpumaplen);

if ((ncpus = virDomainGetVcpus(dom,
cpuinfo, dominfo.nrVirtCpu,
cpumaps, cpumaplen)) < 0)
return -1;

关于operating-system - libvirt的api virDomainGetVcpus中的cpumaps和maplen参数是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com