[libvirt] [PATCH libvirt-python] virNodeInfo.memory is in KiB

Philipp Hahn hahn at univention.de
Wed Dec 5 12:01:13 UTC 2018


but the Python library does an extra left shift of 10 bits returning MiB
instead:

> # cat y.c
> #include <stdlib.h>
> #include <stdio.h>
> #include <libvirt.h>
> int main(void) {
>         virConnectPtr conn = virConnectOpen("qemu:///system");
>         virNodeInfo info;
>         int rv = virNodeGetInfo(conn, &info);
>         printf("%ld\n", info.memory);
>         return rv;
> }
> # gcc y.c -I/usr/include/libvirt -lvirt
> # ./a.out
> 4041088

> # python -c 'import libvirt;c=libvirt.open("qemu:///system");print(c.getInfo()[1])'
> 3946

Fixes: 197153c6
Signed-off-by: Philipp Hahn <hahn at univention.de>
---
 libvirt-override.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libvirt-override.c b/libvirt-override.c
index f7b2f6b..616fa1c 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -2740,7 +2740,7 @@ libvirt_virNodeGetInfo(PyObject *self ATTRIBUTE_UNUSED,
     VIR_PY_LIST_SET_GOTO(py_retval, 0,
                          libvirt_constcharPtrWrap(&info.model[0]), error);
     VIR_PY_LIST_SET_GOTO(py_retval, 1,
-                         libvirt_longWrap((long) info.memory >> 10), error);
+                         libvirt_longWrap((long) info.memory), error);
     VIR_PY_LIST_SET_GOTO(py_retval, 2, libvirt_intWrap((int) info.cpus), error);
     VIR_PY_LIST_SET_GOTO(py_retval, 3, libvirt_intWrap((int) info.mhz), error);
     VIR_PY_LIST_SET_GOTO(py_retval, 4, libvirt_intWrap((int) info.nodes), error);
-- 
2.11.0




More information about the libvir-list mailing list