[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page pois
From: |
David Hildenbrand |
Subject: |
Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature |
Date: |
Thu, 23 Apr 2020 10:11:26 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 22.04.20 20:21, Alexander Duyck wrote:
> From: Alexander Duyck <address@hidden>
>
> We need to make certain to advertise support for page poison tracking if
> we want to actually get data on if the guest will be poisoning pages.
>
> Add a value for tracking the poison value being used if page poisoning is
> enabled. With this we can determine if we will need to skip page reporting
> when it is enabled in the future.
Maybe add something about the semantics
"VIRTIO_BALLOON_F_PAGE_POISON will not change the behavior of free page
hinting or ordinary balloon inflation/deflation."
I do wonder if we should just unconditionally enable
VIRTIO_BALLOON_F_PAGE_POISON here, gluing it to the QEMU compat machine
(via a property that is default-enabled, and disabled from compat machines).
Because, as Michael said, knowing that the guest is using page poisoning
might be interesting even if free page reporting is not around.
>
> Signed-off-by: Alexander Duyck <address@hidden>
> ---
> hw/virtio/virtio-balloon.c | 7 +++++++
> include/hw/virtio/virtio-balloon.h | 1 +
> 2 files changed, 8 insertions(+)
>
> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
> index a1d6fb52c876..5effc8b4653b 100644
> --- a/hw/virtio/virtio-balloon.c
> +++ b/hw/virtio/virtio-balloon.c
> @@ -634,6 +634,7 @@ static void virtio_balloon_get_config(VirtIODevice *vdev,
> uint8_t *config_data)
>
> config.num_pages = cpu_to_le32(dev->num_pages);
> config.actual = cpu_to_le32(dev->actual);
> + config.poison_val = cpu_to_le32(dev->poison_val);
>
> if (dev->free_page_hint_status == FREE_PAGE_HINT_S_REQUESTED) {
> config.free_page_hint_cmd_id =
> @@ -697,6 +698,10 @@ static void virtio_balloon_set_config(VirtIODevice *vdev,
> qapi_event_send_balloon_change(vm_ram_size -
> ((ram_addr_t) dev->actual <<
> VIRTIO_BALLOON_PFN_SHIFT));
> }
> + dev->poison_val = 0;
> + if (virtio_vdev_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON)) {
> + dev->poison_val = le32_to_cpu(config.poison_val);
> + }
> trace_virtio_balloon_set_config(dev->actual, oldactual);
> }
>
> @@ -854,6 +859,8 @@ static void virtio_balloon_device_reset(VirtIODevice
> *vdev)
> g_free(s->stats_vq_elem);
> s->stats_vq_elem = NULL;
> }
> +
> + s->poison_val = 0;
> }
>
> static void virtio_balloon_set_status(VirtIODevice *vdev, uint8_t status)
> diff --git a/include/hw/virtio/virtio-balloon.h
> b/include/hw/virtio/virtio-balloon.h
> index 108cff97e71a..3ca2a78e1aca 100644
> --- a/include/hw/virtio/virtio-balloon.h
> +++ b/include/hw/virtio/virtio-balloon.h
> @@ -70,6 +70,7 @@ typedef struct VirtIOBalloon {
> uint32_t host_features;
>
> bool qemu_4_0_config_size;
> + uint32_t poison_val;
> } VirtIOBalloon;
>
> #endif
>
You still have to migrate poison_val if I am not wrong, otherwise you
would lose it during migration if I am not mistaking.
--
Thanks,
David / dhildenb
- [PATCH v21 QEMU 0/5] virtio-balloon: add support for free page reporting, Alexander Duyck, 2020/04/22
- [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, Alexander Duyck, 2020/04/22
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature,
David Hildenbrand <=
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, Alexander Duyck, 2020/04/23
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, David Hildenbrand, 2020/04/23
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, Alexander Duyck, 2020/04/23
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, David Hildenbrand, 2020/04/24
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, Cornelia Huck, 2020/04/24
- Re: [PATCH v21 QEMU 4/5] virtio-balloon: Implement support for page poison tracking feature, David Hildenbrand, 2020/04/24
[PATCH v21 QEMU 5/5] virtio-balloon: Provide an interface for free page reporting, Alexander Duyck, 2020/04/22