[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/5] balloon: Use only 'pc-dimm' type dimm for b
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 5/5] balloon: Use only 'pc-dimm' type dimm for ballooning |
Date: |
Fri, 5 Feb 2016 13:58:54 +0100 |
On Fri, 5 Feb 2016 11:19:01 +0300
Vladimir Sementsov-Ogievskiy <address@hidden> wrote:
> For now there are only two dimm's: pc-dimm and nvdimm. This patch is
> actually needed to disable ballooning on nvdimm. But, to avoid future
> bugs, instead of disallowing nvdimm, we allow only pc-dimm. So, if
> someone adds new dimm which should be balloon-able, then this ability
> should be explicitly specified here.
>
> Why ballooning for nvdimm should be disabled for now:
>
> NVDIMM for now is planned to use as a backing store for DAX filesystem
> in the guest and thus this memory is excluded from guest memory
> management and LRUs.
>
> In this case libvirt running QEMU along with configured balloon almost
> immediately inflates balloon and effectively kill the guest as
> qemu counts nvdimm as part of the ram.
>
> Counting dimm devices as part of the ram for ballooning was started from
> commit 463756d03:
> virtio-balloon: Fix balloon not working correctly when hotplug memory
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> Signed-off-by: Denis V. Lunev <address@hidden>
> ---
> hw/virtio/virtio-balloon.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
> index b9c1964..0415e07 100644
> --- a/hw/virtio/virtio-balloon.c
> +++ b/hw/virtio/virtio-balloon.c
> @@ -18,6 +18,7 @@
> #include "qemu-common.h"
> #include "hw/virtio/virtio.h"
> #include "hw/i386/pc.h"
> +#include "hw/mem/nvdimm.h"
Is this include still needed?
> #include "cpu.h"
> #include "sysemu/balloon.h"
> #include "hw/virtio/virtio-balloon.h"
> @@ -302,7 +303,10 @@ static ram_addr_t get_current_ram_size(void)
> pc_dimm_build_list(qdev_get_machine(), &list);
> for (item = list; item; item = g_slist_next(item)) {
> PCDIMMDevice *dimm = item->data;
> - size += object_property_get_int(OBJECT(dimm), PC_DIMM_SIZE_PROP,
> NULL);
> + if (!strcmp(object_get_typename(OBJECT(dimm)), TYPE_PC_DIMM)) {
> + size += object_property_get_int(OBJECT(dimm), PC_DIMM_SIZE_PROP,
> + NULL);
> + }
> }
> g_slist_free(list);
>
[Qemu-devel] [PATCH 4/5] virtio-balloon: rewrite get_current_ram_size(), Vladimir Sementsov-Ogievskiy, 2016/02/05
[Qemu-devel] [PATCH v6 0/5] don't use NVDIMM for balooning, Vladimir Sementsov-Ogievskiy, 2016/02/05