From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11021078.outbound.protection.outlook.com [52.101.70.78]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9BCC680726 for ; Fri, 9 Oct 2026 14:56:20 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KVQ7k4iKV5g2VekXcYQD08X0r6qyqVhcMSrD3l6FdFrXWQ/0FO+CAtQ5AOjKQ4AeAob1u8k7/K0ueu3RAT304M1bX6uByTPbJr5Hi4iZdAJnjmDjPq/UJ9+navUGZ+lUVqj9dt/MYgQp1w/rAHAmkweRx+0xW7wRIL5Nai1RTWH2xLLmZOzYMPHXjf7d11jJ0nFNLOywCl3AfWKD5SrQFDgbLHB+xyIaS3TExGxkH2cjP/ogZjdGEuqYB1BxeEiGCoe0N5n8k8zraxpT0Holn6JrKeURKmQwin2GqF26HJvN7trEMRhNu9j6rKxM5W3/ygieTA3kTNrG+2kMPZh4IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Rx4BEnT2yQ/e0Lp2r7BehoJ+X+epfVnB88XMYnByuRY=; b=ws08CWXxFmf2IdUHasIva9Hq6KD1aEpv3PKvlFvDRAsNgcGe4ZP833ByJqWNanjUFf1kDX3DtlC8BGsDn7FB3TV23Kb6/1MYE6Iu8ExB6GPHl31KLm6bj+SxuFiUSvtV6mlQuHxKL36GAugBDksdJ8xEfTmmam0DSVe+fbK2A8Nw2e+SHziGtS0izZQW57rTxQdbJq3yDPhKFdIFSWxcxngfxHDHGlEPykt1Zy2VUmUNjfGHin3m0H/P+fXpyxvAh6tc2nY6Vb1CszlIiJH80gUSXvfoibWyekM1s6soquO3xX8w2r+rdu4ltcu+DaNQ2tShDuT75TvkC5aOEJOGBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rx4BEnT2yQ/e0Lp2r7BehoJ+X+epfVnB88XMYnByuRY=; b=OqiEYOpLz1VL+NBjAvlag+0IMAh+Mq82sUFh7Ua/LfE7UafJxXfSGMYjdubNHAHPdboRIxIZd5O7C3GyxzOjmfrUc5zkl+yqCva+uiGZhJZG5Ag7V9+1Q+ZU17pUGld6LENL/8shYd9WCbg4Oglvr0fpnLdJIhClZjL+cyi30kIjRSCg0W8YaEkaSZ/nSnNv6EW4o20N6bu994OWIZhdJiJcufXjfbeEMbYhJX344C2s/Iq9jPH4xQ+AJDKIIAxLkp1BUgAPjSsHHAkQFJQNvWA8ltzuyhJ0QmTEtL/k0ItRUGeQcbAAarL4WQmjtKU8JvBQWf5lHlHMY9Ij+yhT7g== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DB3PR08MB9110.eurprd08.prod.outlook.com (2603:10a6:10:428::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.17; Fri, 9 Oct 2026 14:56:18 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0496.010; Fri, 9 Oct 2026 14:56:18 +0000 From: Andrey Drobyshev Date: Fri, 09 Oct 2026 17:56:09 +0300 Subject: [PATCH QEMU HCI-8.1 10/21] migration: yank: Move register instance earlier Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261009-vfio_v1-v1-10-2ae91d5b8048@virtuozzo.com> References: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> In-Reply-To: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0132.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34a::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DB3PR08MB9110:EE_ X-MS-Office365-Filtering-Correlation-Id: 146bace9-206a-49ae-93e1-08df2615742c X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|52116014|23010399003|56012099006|38350700014|10067099003|22082099003|5113699003|18002099003; X-Microsoft-Antispam-Message-Info: hBNDisP1YncmRVrCDnP0bixB4WvOe9iqFstzXHcgQj+T4sUmVqw8cs/lK2eqh5T1W5O7Ctn5pFLSOhROO9+IwfF8CnNxEDJuhe1CPbhvhqxlw8MifQWG0YCFXooPnltGbXrlmQRybOrrjaSrsn4whVreirhH4549aDNnfyc0y4VT/mqYB0FCsV4+itKcsjC4U24ZTO04XboZwcPlZSKyp6SOvxKnr/SzFqoOrLSA9jBREYoXPUZSIXVuDAhR9f2gvKLA4iMGAtBfv7ulVBszIhdDrgSfD61G2xmj7JZiyd5Xaa2CktUsPFwTgkwXNjXvRy3aKjZYMbvuega5xh1jTBuqieHdJeX7xisYt9Lg75TKmDac+d41FQIu3uEFzftz24F+iV1HYAuS7o2VlZS8bTUZ03ir/hdjRfSQg3AVErsz4bm4NpCw5jBdER5OyjGzNNnapXJV9gMdSZCKTsvrUGvRMtS1G/mbFAvP9vJrGTz3iuwAuRgOpN6nupgGixGVXLEYaW8ZwPdQ+hbR/KjH0UzV98n5tYA7K+rRvGPccswsBrMsPtb03J/TBD7oOSqli0/ImMXtOjcoZX1YT2dGNlIdIJ7ptXpJNwgSgTd6kOt16fxECzxe7MYmM+evDBZ2hXnT13+nPjE6SAq34RWzTEO3x99sUSI5TxFvbzgK5G7viS0GaRuEklzXNEgerug+ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(52116014)(23010399003)(56012099006)(38350700014)(10067099003)(22082099003)(5113699003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Qkc3VzhSUkx2MWl0Rlh6V0JaQm5mdGFQZzhldVhYeGljekV0d3FyM1MybDJU?= =?utf-8?B?Ky9LNTVDVEkzaklBbFd1WkxBaUxOZUV0OUZma3daSGdBeGtNT1h2Y1RNa1Er?= =?utf-8?B?enFPZTRxU2lBLzR3Y2Z5MW1HVmFHR1lVM1hOblBGRFBuRjQ2eSt1bVI0eG5a?= =?utf-8?B?Z3IydjRFQWxjdmFOMHczN1ZCQ0xKZHhvbjYwSkgzM2l3dTB4cm5UcE5rdm8r?= =?utf-8?B?UnlkRFZ5cEx6REVkdjRZblowcTBvNS8wc1pHWkFPU3FvMmJQVHV0S3phOXJF?= =?utf-8?B?MEdvUVhDdzNLNnBSWVlUYWtndHRTdndKR1NOcDhGSkJXSElCYVMyWkV6bGhh?= =?utf-8?B?cUdybHNna2lUSHc2cU5vQUpHYU96Vy90MktGZjVyTVpTeWdhWnh2YWV5LzZm?= =?utf-8?B?Y3d3WWRLdXZMSjlWSy91Q05DSGVlMU1QMmhGWlpqdnZuYmk5b0t3eHM2K2pr?= =?utf-8?B?Y2JGeWNLTjVhb01leE5EcTFuMFd2aVJUdmNpdVZwZDZqUmp0dDIxMzMrS1Jl?= =?utf-8?B?V0FpMDk1cFZlRDgxY0dXRFFBbjN1WHRuYk1RUWdYTlJPK21YcllUNGJTN3FM?= =?utf-8?B?NTRQU09aa00zVWw5OCtHK2h1RkRONFFENTNvMjZENFgwVjlxMG8yYUV6UE9v?= =?utf-8?B?K3lnY3hmc0I1TW5oenlPUkJ3V0VxSUtCTUNFQWxlVjllODRCVzFFdW9yd1Rm?= =?utf-8?B?VHFaTVpiSURIcXdYam9BUktUWmtIbzRNUXY2SnNLZjhUSk9PaExtTTd1WWJh?= =?utf-8?B?MG91azNJdCtVakxzV05Nc0ZJc0hzcTN0cGlmenZuc3BSek1lWUdMQWN5YUU5?= =?utf-8?B?VGFLOFZnMmFpRjdEa2lRd3lraDFpKzBNaGYxTUc2UWV6cGhkSHplbXlqeTFK?= =?utf-8?B?WkdqZHk2OXFmSk0vWm1HU2VqVXdwTWFKcUtiV2Ric1lEd3ZmYnN1SEthZzZD?= =?utf-8?B?WHdGZGlyMWh1VE84ZUliRWtRR3Q2QS85MnFBU0Y4RnkzUllIYytWREtCTVFt?= =?utf-8?B?ZUZUVEsrZjgyQVg1UFNPYzFkU09vNFB4a3M4alFJaTVqOXQ1cXZMeHc1SkV3?= =?utf-8?B?bU5sK3NTd0hKTzcvU0VHaXFVTE5TSVp4cW9LMDlyaWdmMDJQWnphWVZFUC9R?= =?utf-8?B?Q0sxbkdZUnJpR0ZGOXU4dmU3VzZrZkZjM1ZKV01nNXBTRXdvZkNDM014b2c3?= =?utf-8?B?cSt6VHVpZDNvMzlwMGtuZllHcW40WVlWVDZyOW5OR2RmcTRyYXVDTDJjOHJY?= =?utf-8?B?WkU1UzBzUDhUK3lXaWpCb2NleE0zL0pkSGlPNzZJSDRMVDNQSTB3Wkp5UlRT?= =?utf-8?B?R2dVRTVELzBxRUJ2MVFhYXRUbGU3amxpMmdjSnIwQnhVdHN2RFZBekN6RndV?= =?utf-8?B?WmVQdFNxTDNRdjRHN0dRb29lbWpsOEpIQytjeTZrdjYraU9sbGh0OFpFaW85?= =?utf-8?B?b3ZYRXByMHg0VzBPeXIvaUo0MElrUkM2emdTeVZLYWREc0Q5czN0dWZScDZp?= =?utf-8?B?dmhzTEUwT0lWS2dtK1c3UE85MVdEVFlUMnhCVUhSTkpkTzd3NS82UnZDVTMz?= =?utf-8?B?eWpJRk1HRTdKUXV5YnlyVitra082YjFyMEt0ZVJaK2Y4V2diY1B2VGJuZlNH?= =?utf-8?B?UXJka01CdjZJTU1xNTJ3NUVLRFg3aEljYVhNQjJWaDgyOGFKaFBWOGZXYk9l?= =?utf-8?B?eGQyN2FtQUM1NHhJNWtOU3g2aU9uajJOL0dqaG5tNjVBZVNFRzdibHlaYWt2?= =?utf-8?B?MHdQeGcxUFJWd2VVNDhKU0VDMWJzRnhtQVJSQmJyOGlhMTBqbWxtOXRpQkRS?= =?utf-8?B?Tis4L21jN2l2dzVSVFRpcU95UDBPNk03L0xSU1d3c0gxMmtkcEpwaHRmc1Fj?= =?utf-8?B?WDN5MDIwQXZvZWNRendqYnIwNjlCYzl6aGVYOGFWQXJxZ1lTSHRMMzA5L0Ja?= =?utf-8?B?UldwVHd0bERRdzgwd0JCc3pTNU1hMmxsVTl1SnJKQmQ0YjVobENQckYrQk1v?= =?utf-8?B?dmk5aXFjZHZjTkJnbzJGUlVSOGdzNXg0UFdVcG1GU3BwMU9URllRRHZLeE55?= =?utf-8?B?VGIxRkZPdkY4VXVFcSs1WEN1ZXc1VDdvQUdkaGVncDZ5bm9BQlNzRE51VXp4?= =?utf-8?B?S2s1dDdqT2FpZUx2TGNQRnlMY3NhS0crd21DMXJFcW9pVmYxQnRGVVJXQ1N6?= =?utf-8?B?N2JjOXJqZCtZanRKMEc5cit3K2lTZTdscWdKMjcyMTdCMTRMUXA5a08xWjk2?= =?utf-8?B?NnV5ampMWWhjVU53MkJtOWFaUGk1em9HeWc4aGM3OEhvRlJxWW1ISUMxQWhP?= =?utf-8?B?S3FUYzRiUVlqakZYSDVvS0RnaTdWTkpxLzA0QlVlUVZPNzlhWVE4d3RJaDF4?= =?utf-8?Q?z2DnNThxqUFekrqs=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 146bace9-206a-49ae-93e1-08df2615742c X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2026 14:56:09.6255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: os8hiDtq5uWcb/Mlb0nYE6ulLsriEW7EAy0A/yjSvxSaS1NwnC4JmiCK7NhCAtfFIZ/aypMQpAdXL+ItGujxwfSInMRzW3z97jGG3/fsyA0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9110 From: Fabiano Rosas Move the register_instance call to migrate_prepare() so it can be paired with the unregister_instance at migration_cleanup(). Otherwise, the cleanup cannot be run when cpr_state_save() fails because the instance is registered only after it. When resuming from a paused postcopy migration, migrate_prepare() returns early, but migration_cleanup() doesn't run, so the yank will remain paired. andrey.drobyshev: This commit was cherry-picked from the upstream commit 7e714392437c, adapted for the hci-dev base, which predates the upstream migration_connect_set_error() -> migration_connect_error_propagate() rename (77c82edadbe0): the error propagation calls in qmp_migrate() and qmp_migrate_finish() keep the older spelling. Reviewed-by: Peter Xu Reviewed-by: Prasad Pandit Link: https://lore.kernel.org/qemu-devel/20260123141656.6765-11-farosas@suse.de Signed-off-by: Fabiano Rosas --- migration/migration.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 2f8ef20c036..638fa783ef2 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2235,11 +2235,12 @@ static bool migrate_prepare(MigrationState *s, bool resume, Error **errp) return false; } + yank_register_instance(MIGRATION_YANK_INSTANCE, &error_abort); + return true; } -static void qmp_migrate_finish(MigrationAddress *addr, bool resume_requested, - Error **errp); +static void qmp_migrate_finish(MigrationAddress *addr, Error **errp); static void migrate_hup_add(MigrationState *s, QIOChannel *ioc, GSourceFunc cb, void *opaque) @@ -2264,7 +2265,7 @@ static gboolean qmp_migrate_finish_cb(QIOChannel *channel, { MigrationAddress *addr = opaque; - qmp_migrate_finish(addr, false, NULL); + qmp_migrate_finish(addr, NULL); cpr_state_close(); migrate_hup_delete(migrate_get_current()); @@ -2276,7 +2277,6 @@ void qmp_migrate(const char *uri, bool has_channels, MigrationChannelList *channels, bool has_detach, bool detach, bool has_resume, bool resume, Error **errp) { - bool resume_requested; Error *local_err = NULL; MigrationState *s = migrate_get_current(); g_autoptr(MigrationChannel) channel = NULL; @@ -2329,8 +2329,7 @@ void qmp_migrate(const char *uri, bool has_channels, return; } - resume_requested = has_resume && resume; - if (!migrate_prepare(s, resume_requested, errp)) { + if (!migrate_prepare(s, has_resume && resume, errp)) { /* Error detected, put into errp */ return; } @@ -2354,28 +2353,22 @@ void qmp_migrate(const char *uri, bool has_channels, QAPI_CLONE(MigrationAddress, addr)); } else { - qmp_migrate_finish(addr, resume_requested, errp); + qmp_migrate_finish(addr, errp); } out: if (local_err) { + yank_unregister_instance(MIGRATION_YANK_INSTANCE); migration_connect_set_error(s, local_err); error_propagate(errp, local_err); } } -static void qmp_migrate_finish(MigrationAddress *addr, bool resume_requested, - Error **errp) +static void qmp_migrate_finish(MigrationAddress *addr, Error **errp) { MigrationState *s = migrate_get_current(); Error *local_err = NULL; - if (!resume_requested) { - if (!yank_register_instance(MIGRATION_YANK_INSTANCE, errp)) { - return; - } - } - if (addr->transport == MIGRATION_ADDRESS_TYPE_SOCKET) { SocketAddress *saddr = &addr->u.socket; if (saddr->type == SOCKET_ADDRESS_TYPE_INET || @@ -2401,9 +2394,6 @@ static void qmp_migrate_finish(MigrationAddress *addr, bool resume_requested, } if (local_err) { - if (!resume_requested) { - yank_unregister_instance(MIGRATION_YANK_INSTANCE); - } migration_connect_set_error(s, local_err); error_propagate(errp, local_err); return; -- 2.47.1