[{"id":3190583,"web_url":"http://patchwork.ozlabs.org/comment/3190583/","msgid":"<239fecd6-c184-4187-85bb-2826ae2ce0d0@maciej.szmigiero.name>","list_archive_url":null,"date":"2023-09-30T15:50:36","subject":"Re: [PATCH v4 15/18] virtio-mem: Update state to match bitmap as soon\n as it's been migrated","submitter":{"id":65914,"url":"http://patchwork.ozlabs.org/api/people/65914/","name":"Maciej S. Szmigiero","email":"mail@maciej.szmigiero.name"},"content":"On 26.09.2023 20:57, David Hildenbrand wrote:\n> It's cleaner and future-proof to just have other state that depends on the\n> bitmap state to be updated as soon as possible when restoring the bitmap.\n> \n> So factor out informing RamDiscardListener into a functon and call it in\n> case of early migration right after we restored the bitmap.\n> \n> Signed-off-by: David Hildenbrand <david@redhat.com>\n> ---\n>   hw/virtio/virtio-mem.c | 26 +++++++++++++++++++++-----\n>   1 file changed, 21 insertions(+), 5 deletions(-)\n> \n> diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c\n> index 0b0e6c5090..0cf47df9cf 100644\n> --- a/hw/virtio/virtio-mem.c\n> +++ b/hw/virtio/virtio-mem.c\n> @@ -984,9 +984,8 @@ static int virtio_mem_restore_unplugged(VirtIOMEM *vmem)\n>                                                  virtio_mem_discard_range_cb);\n>   }\n>   \n> -static int virtio_mem_post_load(void *opaque, int version_id)\n> +static int virtio_mem_post_load_bitmap(VirtIOMEM *vmem)\n>   {\n> -    VirtIOMEM *vmem = VIRTIO_MEM(opaque);\n>       RamDiscardListener *rdl;\n>       int ret;\n>   \n> @@ -1001,6 +1000,20 @@ static int virtio_mem_post_load(void *opaque, int version_id)\n>               return ret;\n>           }\n>       }\n> +    return 0;\n> +}\n> +\n> +static int virtio_mem_post_load(void *opaque, int version_id)\n> +{\n> +    VirtIOMEM *vmem = VIRTIO_MEM(opaque);\n> +    int ret;\n> +\n> +    if (!vmem->early_migration) {\n> +        ret = virtio_mem_post_load_bitmap(vmem);\n> +        if (ret) {\n> +            return ret;\n> +        }\n> +    }\n>   \n>       /*\n>        * If shared RAM is migrated using the file content and not using QEMU,\n> @@ -1043,7 +1056,7 @@ static int virtio_mem_post_load_early(void *opaque, int version_id)\n>       int ret;\n>   \n>       if (!vmem->prealloc) {\n> -        return 0;\n> +        goto post_load_bitmap;\n>       }\n>   \n>       /*\n> @@ -1051,7 +1064,7 @@ static int virtio_mem_post_load_early(void *opaque, int version_id)\n>        * don't mess with preallocation and postcopy.\n>        */\n>       if (migrate_ram_is_ignored(rb)) {\n> -        return 0;\n> +        goto post_load_bitmap;\n>       }\n>   \n>       /*\n> @@ -1084,7 +1097,10 @@ static int virtio_mem_post_load_early(void *opaque, int version_id)\n>               return -EBUSY;\n>           }\n>       }\n> -    return 0;\n> +\n> +post_load_bitmap:\n> +    /* Finally, update any other state to be consistent with the new bitmap. */\n> +    return virtio_mem_post_load_bitmap(vmem);\n>   }\n>   \n>   typedef struct VirtIOMEMMigSanityChecks {\n\n\nReviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>\n\nThanks,\nMaciej","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":"legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4RyWsy6XBTz1yng\n\tfor <incoming@patchwork.ozlabs.org>; Sun,  1 Oct 2023 01:51:34 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1qmcFL-0000d5-Dg; Sat, 30 Sep 2023 11:51:11 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mail@maciej.szmigiero.name>)\n id 1qmcFJ-0000cj-Ew\n for qemu-devel@nongnu.org; Sat, 30 Sep 2023 11:51:09 -0400","from vps-vb.mhejs.net ([37.28.154.113])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mail@maciej.szmigiero.name>)\n id 1qmcFE-0005KN-KG\n for qemu-devel@nongnu.org; Sat, 30 Sep 2023 11:51:09 -0400","from MUA by vps-vb.mhejs.net with esmtps (TLS1.2) tls\n TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2)\n (envelope-from <mail@maciej.szmigiero.name>)\n id 1qmcEr-00086K-WD; Sat, 30 Sep 2023 17:50:42 +0200"],"Message-ID":"<239fecd6-c184-4187-85bb-2826ae2ce0d0@maciej.szmigiero.name>","Date":"Sat, 30 Sep 2023 17:50:36 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v4 15/18] virtio-mem: Update state to match bitmap as soon\n as it's been migrated","Content-Language":"en-US, pl-PL","To":"David Hildenbrand <david@redhat.com>","Cc":"Paolo Bonzini <pbonzini@redhat.com>, Igor Mammedov <imammedo@redhat.com>,\n  Xiao Guangrong <xiaoguangrong.eric@gmail.com>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, Peter Xu <peterx@redhat.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Eduardo Habkost <eduardo@habkost.net>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Yanan Wang <wangyanan55@huawei.com>, Michal Privoznik <mprivozn@redhat.com>,\n\t=?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Gavin Shan <gshan@redhat.com>, Alex Williamson <alex.williamson@redhat.com>,\n Stefan Hajnoczi <stefanha@redhat.com>, kvm@vger.kernel.org,\n qemu-devel@nongnu.org","References":"<20230926185738.277351-1-david@redhat.com>\n <20230926185738.277351-16-david@redhat.com>","From":"\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name>","Autocrypt":"addr=mail@maciej.szmigiero.name; keydata=\n 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","In-Reply-To":"<20230926185738.277351-16-david@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=37.28.154.113;\n envelope-from=mail@maciej.szmigiero.name; helo=vps-vb.mhejs.net","X-Spam_score_int":"-18","X-Spam_score":"-1.9","X-Spam_bar":"-","X-Spam_report":"(-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]