qemu-devel
[Top][All Lists]
Advanced

[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 15:55:35 +0100

On Fri, 5 Feb 2016 17:09:58 +0300
Vladimir Sementsov-Ogievskiy <address@hidden> wrote:

> On 05.02.2016 15:58, Igor Mammedov wrote:
> > 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?  
> 
> Yes, for TYPE_PC_DIMM
then should it be pc-dimm.h

> 
> >  
> >>   #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);
> >>     
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]