qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v1 1/4] virtio-balloon: VIRTIO_BALLOON_F_FREE_PA


From: Wei Wang
Subject: Re: [Qemu-devel] [PATCH v1 1/4] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ
Date: Fri, 19 Jan 2018 11:52:49 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 01/17/2018 08:31 PM, Juan Quintela wrote:
Wei Wang <address@hidden> wrote:
The new feature enables the virtio-balloon device to receive the hint of
guest free pages from the free page vq, and clears the corresponding bits
of the free page from the dirty bitmap, so that those free pages are not
transferred by the migration thread.

Without this feature, to local live migrate an 8G idle guest takes
~2286 ms. With this featrue, it takes ~260 ms, which redues the
migration time to ~11%.

Signed-off-by: Wei Wang <address@hidden>
Signed-off-by: Liang Li <address@hidden>
CC: Michael S. Tsirkin <address@hidden>
I hate to answer twice,but ...

Thanks for the second review :)



+static bool virtio_balloon_free_page_support(void *opaque)
+{
+    VirtIOBalloon *s = opaque;
+
+    if (!balloon_free_page_supported(s)) {
+        return false;
+    }
+
+    return true;
return balloon_free_page_supported(s); ???

Forgot to clean this up. It is actually a duplicate of balloon_free_page_supported() now, I'll remove one of them in the next version.



@@ -312,6 +399,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.free_page_report_cmd_id = cpu_to_le32(dev->free_page_report_cmd_id);
trace_virtio_balloon_get_config(config.num_pages, config.actual);
      memcpy(config_data, &config, sizeof(struct virtio_balloon_config));
@@ -418,6 +506,7 @@ static const VMStateDescription 
vmstate_virtio_balloon_device = {
      .fields = (VMStateField[]) {
          VMSTATE_UINT32(num_pages, VirtIOBalloon),
          VMSTATE_UINT32(actual, VirtIOBalloon),
+        VMSTATE_UINT32(free_page_report_cmd_id, VirtIOBalloon),
          VMSTATE_END_OF_LIST()
No new version, no subsection, and we add a new field?
I think that is wrong.  We need to send that only for old versions.
Look at how was handled for ....

[PATCH v2] hpet: recover timer offset correctly

v2 discussion explains why we want to handle that way for different
machine types.

v3 does it correctly.

OK, I'll put it to a subsection.



And I think that with this I have reviewed all the migration/vmstate
bits, no?

If something is missing, please ask.

Thanks. This is the only new device state that need to be saved. Please have a review of patch 2 as well, which makes the migration thread use this feature.

Best,
Wei




reply via email to

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