From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50930) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQw8O-0006bn-Gc for qemu-devel@nongnu.org; Wed, 03 Feb 2016 07:02:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQw8I-0004Pt-Hd for qemu-devel@nongnu.org; Wed, 03 Feb 2016 07:02:08 -0500 Received: from mx2.parallels.com ([199.115.105.18]:44436) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQw8I-0004Pp-B7 for qemu-devel@nongnu.org; Wed, 03 Feb 2016 07:02:02 -0500 Message-ID: <56B1EC2C.1070204@virtuozzo.com> Date: Wed, 3 Feb 2016 15:01:48 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 References: <1453963872-13549-1-git-send-email-vsementsov@virtuozzo.com> <1453963872-13549-4-git-send-email-vsementsov@virtuozzo.com> <87y4b3i0zg.fsf@blackfin.pond.sub.org> In-Reply-To: <87y4b3i0zg.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/3] balloon: don't use NVDIMM for ballooning List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Xiao Guangrong , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Stefan Hajnoczi , Igor Mammedov , "Denis V. Lunev" On 02.02.2016 18:30, Markus Armbruster wrote: > Vladimir Sementsov-Ogievskiy writes: > >> 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 >> Signed-off-by: Denis V. Lunev >> CC: Stefan Hajnoczi >> CC: Xiao Guangrong >> CC: "Michael S. Tsirkin" >> CC: Igor Mammedov >> CC: Eric Blake >> CC: Markus Armbruster >> --- >> hw/virtio/virtio-balloon.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c >> index 6a4c4d2..749be25 100644 >> --- a/hw/virtio/virtio-balloon.c >> +++ b/hw/virtio/virtio-balloon.c >> @@ -26,6 +26,7 @@ >> #include "qapi/visitor.h" >> #include "qapi-event.h" >> #include "trace.h" >> +#include "hw/mem/nvdimm.h" >> >> #if defined(__linux__) >> #include >> @@ -308,7 +309,9 @@ static ram_addr_t get_current_ram_size(void) >> if (value) { >> switch (value->type) { >> case MEMORY_DEVICE_INFO_KIND_DIMM: >> - size += value->u.dimm->size; >> + if (strcmp(value->u.dimm->type, TYPE_NVDIMM)) { >> + size += value->u.dimm->size; >> + } >> break; >> default: >> break; > Should this be a blacklist ("don't count TYPE_NVDIMM") or a whitelist > ("count TYPE_PC_DIMM")? I guess that depends on whether we think future > types are more likely to need counting or not counting. May be, to avoid such bugs in future, it would be better to make like a whitelist. -- Best regards, Vladimir