[libvirt] [PATCH 6/4] nodeinfo: port nodecpumap to RHEL5

Viktor Mihajlovski mihajlov at linux.vnet.ibm.com
Fri Nov 16 16:57:15 UTC 2012


On 11/15/2012 04:38 PM, Eric Blake wrote:
> -    cpumap = linuxParseCPUmap(present, SYSFS_SYSTEM_PATH "/cpu/online");
> +
> +    if (virFileExists(SYSFS_SYSTEM_PATH "/cpu/online")) {
> +        cpumap = linuxParseCPUmap(present, SYSFS_SYSTEM_PATH "/cpu/online");
> +    } else {
> +        int i;
> +
> +        cpumap = virBitmapNew(present);
> +        if (!cpumap) {
> +            virReportOOMError();
> +            return NULL;
> +        }
> +        for (i = 0; i < present; i++) {
> +            int online = virNodeGetCpuValue(SYSFS_SYSTEM_PATH, i, "online", 1);
> +            if (online < 0) {
> +                virBitmapFree(cpumap);
> +                return NULL;
> +            }
> +            if (online)
> +                ignore_value(virBitmapSetBit(cpumap, i));
> +        }
> +    }
>       if (max_id && cpumap)
>           *max_id = present;
>       return cpumap;
>

Fallback should provide correct result on back-level kernels. The code
doesn't use the goto error/cleanup pattern, but there's a mixture in
nodeinfo.c anyway and it wouldn't make it anymore compact. As far as
I am concerned: +1.

-- 

Mit freundlichen Grüßen/Kind Regards
    Viktor Mihajlovski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294




More information about the libvir-list mailing list