[{"id":3680305,"web_url":"http://patchwork.ozlabs.org/comment/3680305/","msgid":"<9ca99d28-d36b-4b01-98f7-f79b8db0485f@yandex-team.ru>","list_archive_url":null,"date":"2026-04-22T08:23:09","subject":"Re: [PATCH v2 05/16] migration/treewide: Merge\n @state_pending_{exact|estimate} APIs","submitter":{"id":84116,"url":"http://patchwork.ozlabs.org/api/people/84116/","name":"Vladimir Sementsov-Ogievskiy","email":"vsementsov@yandex-team.ru"},"content":"On 21.04.26 23:20, Peter Xu wrote:\n> -     * @can_postcopy: amount of data that can be migrated in postcopy\n> -     *                or in stopped state, i.e. after target start.\n> -     *                Some can also be migrated during precopy (RAM).\n> -     *                Some must be migrated after source stops\n> -     *                (block-dirty-bitmap)\n\nShouldn't we save this bit of information as part of MigPendingData documentation?\n\n\nCurrently it seems incomplete, and it uses \"can\" in a bit different meanings:\n\n+typedef struct MigPendingData {\n+    /* Amount of pending bytes can be transferred in precopy or stopcopy */\n\nthis \"can\" is restrictive: these bytes can be transferred ONLY in precopy or stopcopy\n\n+    uint64_t precopy_bytes;\n+    /* Amount of pending bytes can be transferred in postcopy */\n\nthis \"can\" _looks_ like permissive, it seems obvious that we should be able to transfer\nthese bytes in precopy as well. And that's true for RAM but wrong for block dirty bitmaps.\n\n+    uint64_t postcopy_bytes;\n+} MigPendingData;\n+","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\tdkim=pass (1024-bit key;\n unprotected) header.d=yandex-team.ru header.i=@yandex-team.ru\n header.a=rsa-sha256 header.s=default header.b=VXC+c4/H;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net;\n dkim=pass header.i=@yandex-team.ru"],"Received":["from lists1p.gnu.org (lists1p.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 4g0sgW2CVLz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 18:23:35 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFSrl-00071J-8a; Wed, 22 Apr 2026 04:23:25 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <vsementsov@yandex-team.ru>)\n id 1wFSrd-0006y9-ED\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 04:23:19 -0400","from forwardcorp1d.mail.yandex.net ([178.154.239.200])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <vsementsov@yandex-team.ru>)\n id 1wFSrb-0006ha-BZ\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 04:23:17 -0400","from mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net\n (mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net\n [IPv6:2a02:6b8:c42:94a9:0:640:a3fa:0])\n by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id B8A9880725;\n Wed, 22 Apr 2026 11:23:11 +0300 (MSK)","from [IPV6:2a02:6bf:8080:781::1:26] (unknown\n [2a02:6bf:8080:781::1:26])\n by mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net (smtpcorp) with ESMTPSA\n id 9NO2XU0K4mI0-JZyi2uq0; Wed, 22 Apr 2026 11:23:11 +0300"],"X-Yandex-Fwd":"1","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;\n s=default; t=1776846191;\n bh=9GOYWkfRc8gg1pfZE5ruWPzgPv/ur9PEnr4cXLuVd7U=;\n h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;\n b=VXC+c4/HG4li6sSbt1QAaHvyhclLm+8qTHIV27z8bu3gEiJQONJ0czhZy1j9BxyHb\n FCZb/t9X84PA/tT0VX9nC32WPZ+Lw3CxFBEI+cG+Qasl0vRlnFlYPkRmTjJMNUzAO4\n mSVh0gcE5/zmrnf65PBJO1RgPh5uRJ31O4cW5CNg=","Message-ID":"<9ca99d28-d36b-4b01-98f7-f79b8db0485f@yandex-team.ru>","Date":"Wed, 22 Apr 2026 11:23:09 +0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 05/16] migration/treewide: Merge\n @state_pending_{exact|estimate} APIs","To":"Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org","Cc":"Joao Martins <joao.m.martins@oracle.com>,\n Markus Armbruster <armbru@redhat.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>,\n Avihai Horon <avihaih@nvidia.com>,\n =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Fabiano Rosas <farosas@suse.de>, Prasad Pandit <ppandit@redhat.com>,\n Alex Williamson <alex@shazbot.org>, Kirti Wankhede <kwankhede@nvidia.com>,\n Zhiyi Guo <zhguo@redhat.com>,\n \"Maciej S . Szmigiero\" <mail@maciej.szmigiero.name>,\n Juraj Marcin <jmarcin@redhat.com>, Halil Pasic <pasic@linux.ibm.com>,\n Christian Borntraeger <borntraeger@linux.ibm.com>,\n Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>,\n Richard Henderson <richard.henderson@linaro.org>,\n Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>,\n Cornelia Huck <cohuck@redhat.com>, Eric Blake <eblake@redhat.com>,\n John Snow <jsnow@redhat.com>, \"Jason J. Herne\" <jjherne@linux.ibm.com>","References":"<20260421202110.306051-1-peterx@redhat.com>\n <20260421202110.306051-6-peterx@redhat.com>","Content-Language":"en-US","From":"Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>","In-Reply-To":"<20260421202110.306051-6-peterx@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=178.154.239.200;\n envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 development <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"}},{"id":3680312,"web_url":"http://patchwork.ozlabs.org/comment/3680312/","msgid":"<13359e7d-be22-4165-acf2-67de2fa3e7fd@yandex-team.ru>","list_archive_url":null,"date":"2026-04-22T08:29:11","subject":"Re: [PATCH v2 05/16] migration/treewide: Merge\n @state_pending_{exact|estimate} APIs","submitter":{"id":84116,"url":"http://patchwork.ozlabs.org/api/people/84116/","name":"Vladimir Sementsov-Ogievskiy","email":"vsementsov@yandex-team.ru"},"content":"On 21.04.26 23:20, Peter Xu wrote:\n> These two APIs are a slight duplication.  For example, there're a few users\n> that directly pass in the same function.\n> \n> It might also be error prone to provide two hooks, so that it's easier to\n> happen one module report different things via the two hooks.\n> \n> In reality, they should always report the same thing, only about whether we\n> should use a fast-path when the slow path might be too slow, as QEMU may\n> query these information quite frequently during migration process.\n> \n> Merge it into one API, provide a bool showing if the query is an exact\n> query or not.  No functional change intended.\n> \n> Export qemu_savevm_query_pending().  We should use the new API here\n> provided when there're new users to do the query.  This will happen very\n> soon.\n> \n> Cc: Halil Pasic<pasic@linux.ibm.com>\n> Cc: Christian Borntraeger<borntraeger@linux.ibm.com>\n> Cc: Eric Farman<farman@linux.ibm.com>\n> Cc: Matthew Rosato<mjrosato@linux.ibm.com>\n> Cc: Richard Henderson<richard.henderson@linaro.org>\n> Cc: Ilya Leoshkevich<iii@linux.ibm.com>\n> Cc: David Hildenbrand<david@kernel.org>\n> Cc: Cornelia Huck<cohuck@redhat.com>\n> Cc: Eric Blake<eblake@redhat.com>\n> Cc: Vladimir Sementsov-Ogievskiy<vsementsov@yandex-team.ru>\n> Cc: John Snow<jsnow@redhat.com>\n> Reviewed-by: Jason J. Herne<jjherne@linux.ibm.com>\n> Reviewed-by: Juraj Marcin<jmarcin@redhat.com>\n> Reviewed-by: Avihai Horon<avihaih@nvidia.com>\n> Signed-off-by: Peter Xu<peterx@redhat.com>\n\n\nProbably too late after all these r-b-s, but it would be simpler to review,\nif renaming and reworking the documentation of the fields, moving them\nto a separate structure, and combining two handler functions into one\nwould all be different patches.","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\tdkim=pass (1024-bit key;\n unprotected) header.d=yandex-team.ru header.i=@yandex-team.ru\n header.a=rsa-sha256 header.s=default header.b=jFEvBgrO;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net;\n dkim=pass header.i=@yandex-team.ru"],"Received":["from lists1p.gnu.org (lists1p.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 4g0spQ5sqvz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 18:29:34 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFSxT-0001vp-HN; Wed, 22 Apr 2026 04:29:19 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <vsementsov@yandex-team.ru>)\n id 1wFSxS-0001vh-LR\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 04:29:18 -0400","from forwardcorp1d.mail.yandex.net ([178.154.239.200])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <vsementsov@yandex-team.ru>)\n id 1wFSxQ-0008IS-Ny\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 04:29:18 -0400","from mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net\n (mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net\n [IPv6:2a02:6b8:c42:65a0:0:640:e1de:0])\n by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id C9A2E8075C;\n Wed, 22 Apr 2026 11:29:12 +0300 (MSK)","from [IPV6:2a02:6bf:8080:781::1:26] (unknown\n [2a02:6bf:8080:781::1:26])\n by mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (smtpcorp) with ESMTPSA\n id BTOEwP0MweA0-pTyamGYv; Wed, 22 Apr 2026 11:29:12 +0300"],"X-Yandex-Fwd":"1","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;\n s=default; t=1776846552;\n bh=O7NpyBa9rIKmtYYGmuzmbMDrq+AOQtVdeE/h+Hr5AO0=;\n h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;\n b=jFEvBgrOkVOZa10chmi0QS82Ao00hWMTGKfeR7tcP1w8ZcMb/fSg9Pk4Hx2cMKhQ6\n SDp4NAX2SivBPDk3rjBU44Xr5IuKmdPyALjBVHMXqz+5Eh83rAI+lF3TIKhmP8c3r3\n ILfKoVxc92RM7N8x6Lsk+OinDtcVDDD3h/9Gqg4Y=","Message-ID":"<13359e7d-be22-4165-acf2-67de2fa3e7fd@yandex-team.ru>","Date":"Wed, 22 Apr 2026 11:29:11 +0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 05/16] migration/treewide: Merge\n @state_pending_{exact|estimate} APIs","To":"Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org","Cc":"Joao Martins <joao.m.martins@oracle.com>,\n Markus Armbruster <armbru@redhat.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>,\n Avihai Horon <avihaih@nvidia.com>,\n =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Fabiano Rosas <farosas@suse.de>, Prasad Pandit <ppandit@redhat.com>,\n Alex Williamson <alex@shazbot.org>, Kirti Wankhede <kwankhede@nvidia.com>,\n Zhiyi Guo <zhguo@redhat.com>,\n \"Maciej S . Szmigiero\" <mail@maciej.szmigiero.name>,\n Juraj Marcin <jmarcin@redhat.com>, Halil Pasic <pasic@linux.ibm.com>,\n Christian Borntraeger <borntraeger@linux.ibm.com>,\n Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>,\n Richard Henderson <richard.henderson@linaro.org>,\n Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>,\n Cornelia Huck <cohuck@redhat.com>, Eric Blake <eblake@redhat.com>,\n John Snow <jsnow@redhat.com>, \"Jason J. Herne\" <jjherne@linux.ibm.com>","References":"<20260421202110.306051-1-peterx@redhat.com>\n <20260421202110.306051-6-peterx@redhat.com>","Content-Language":"en-US","From":"Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>","In-Reply-To":"<20260421202110.306051-6-peterx@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=178.154.239.200;\n envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 development <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"}}]