From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a111e5919d-20ea7367-ec6f-425f-a0c4-34f9c11c8384-000000@eu-central-1.amazonses.com> Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020084.outbound.protection.outlook.com [52.101.69.84]) by lore.virtuozzo.com (Postfix) with ESMTPS id 36F2E8017D for ; Tue, 6 Oct 2026 15:47:04 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oyTP4EG4i6XpIGjb233CG1ZMHXig21d6XR0Mcc4T14IyZ3xLDrA+PC4quUR7+n/WnbzqKkuoZi8lgp5T3DvDb7CI3w+UAPTiZI5ILKsci76/gtcFBJNtTftH8BiaIHqvGEII9LdASonPnKuuIG37v7+44GECIBqpLCDK63feaKmv6fXTLH4766zS6xT3xuXF5jAjIHLzfVrlGt1qoLSY+ke2cwnu4lgTWRR+vEiFEKmzuzDoVxbDkzxQcw5a4XXupqcB/97CZ2MwxJAf86qs6fCe+bZRXNa77k0z2nkp596TegbOGrzavHUP0Qw3H0x2Lr4rzmLU4QRF3o+XmPRYhQ== 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=1TkGv5AsZ4aiuT0odn0E3kGwoPUL2t02tLCSlxLMD2Y=; b=iT5muk8+Qk7EYtTxYpNeZOuxfKqLuFgxtf47hIBvx2xshoXbhaU9VzzL1FEAxaegJMFSoMHCK2j/TX9z3qWBO2B7cn7o1UMzLq+vioQqG3mS6W3Jfq0ujBgUxVGo4uk5AeTZw4WfkFgnKjy+68F0oPZuMudOAOo4Ek/ZDGku8JKHXd+jWcVDlkgy0Wkpq7yoaZI8sSFrVLu/YK+ptLtHh7Y150JC9ZLtvVYqMdScrheCwE15Me4M96zUeDE4h9zTVekcOIRSaAXRCK8yxURvcBAwF7mku4aMerw91i6MR6JGoaKVSFLilqh4LE6TEvqJ3jUYK9cF31yBu98/37Y2WA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.5) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=eu-central-1.amazonses.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=amazonses.com; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1TkGv5AsZ4aiuT0odn0E3kGwoPUL2t02tLCSlxLMD2Y=; b=LXTEB+wbRqHyDaiCkhqSXvwQDygPYxUbP88c1WwX5z0hWXkDXyXr95XdXx4LReKqFZZNJlxCmORzP3D4a71UkE/o8+PE4j7KqtA1hprY/UizioNOedhS/B/ngjnsJU91aR9Vy/9fCeSg2aFdAtfovXRsKJjQbyqHF/acxr1LlL0= Received: from DU2PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:10:234::19) by MIWPR08MB294223.eurprd08.prod.outlook.com (2603:10a6:290:d8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.14; Tue, 6 Oct 2026 15:47:01 +0000 Received: from MAD0EPF000008BD.eurprd04.prod.outlook.com (2603:10a6:10:234:cafe::11) by DU2PR04CA0044.outlook.office365.com (2603:10a6:10:234::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.472.20 via Frontend Transport; Tue, 6 Oct 2026 15:47:01 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.5) smtp.mailfrom=eu-central-1.amazonses.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com;dkim=pass (signature was verified) header.d=amazonses.com;dmarc=pass action=none header.from=sashiko.virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of eu-central-1.amazonses.com designates 69.169.224.5 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.5; helo=b224-5.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-5.smtp-out.eu-central-1.amazonses.com (69.169.224.5) by MAD0EPF000008BD.mail.protection.outlook.com (10.167.241.164) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.496.14 via Frontend Transport; Tue, 6 Oct 2026 15:47:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1791301620; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Message-ID; bh=wCMMaNpPE3y8m4WOYczDyNSirHZceU3zUotQ2ZpnwF4=; b=TSWFKSoX/ZaPZaSW0h7mRwFP/gw0m0w8nZqP/xVr+tBoQYTb2B/0H4lpmA5O8Y24 Qx2UaQC5p2mgnMmb+eiilJRMyPvZGuQVYP9oABJB+7bd/WT0w1Y4WVEgSmVeoHgi9/j SWocV3M84yEStEpv543H4MdVkPOH0CHHFvrIofmDDJZ5Ozad0ES58BWwzek3vktSVOm WvzKf4oTtJogHLTF+WT6N0143d5Wux6L2cQNrFH6WX6mOTSpyzTzhDVH9ydCBs5MSXJ rFlfBBMt36AFXw6zx6/SVy7281gml+Hpjl459Xv8ObiMMwDJc6xakT2OoZjsqjU/nio Uv8C7Tr20A== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=sokbgaaqhfgd6qjht2wmdajpuuanpimv; d=amazonses.com; t=1791301620; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=wCMMaNpPE3y8m4WOYczDyNSirHZceU3zUotQ2ZpnwF4=; b=TC1d59FyjVQbTwvtvQwbuN7fKwan2ubdRt+9alLLUAnS7m0ynrkDXqHpWxk03nH2 RI7BP80eumCzIbUn4ovV+qZfHiC23nMV0sjZYAAxQmkri60WacB/5vPM76LGyUkaouN JH5mlIIs4zDh1RFMsx95PeXmEygmVoAQwBwz3dho= From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.0 v7 08/14] usb-host: skip product-string read on CPR incoming #VSTOR-137800 To: svt-core@virtuozzo.com, Andrey Drobyshev Cc: den@openvz.org, andrey.drobyshev@virtuozzo.com In-Reply-To: <20261006-usb-host_v3-v7-8-044f668789a1@virtuozzo.com> References: <20261006-usb-host_v3-v7-0-044f668789a1@virtuozzo.com> <20261006-usb-host_v3-v7-8-044f668789a1@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 6 Oct 2026 15:47:00 +0000 Message-ID: <010701a111e5919d-20ea7367-ec6f-425f-a0c4-34f9c11c8384-000000@eu-central-1.amazonses.com> Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.06-69.169.224.5 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008BD:EE_|MIWPR08MB294223:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 88cf867e-26ad-48c0-b232-08df23c10f9a X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA 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|704161411799003|376014|48200799018|9140799003|61400799027|32142699015|4113699003|5113699003|22082099003|18002099003|55112099003|16102099003|10067099003|4143699003|5063699009|56012099006; X-Microsoft-Antispam-Message-Info: 1jKcdv4JTTBPakE3h/wFy1aPGqSOhCXpPMTGeQ9DUZtx5OMPoULyEF6AmsRBdUwZFDmsz/h7h6PnfJXGofQ75/MM1Bkw2lnL6m9yaOkY/qbpJfRyyvlT2ouFR9PhP6iFl3KTIxKzXjWeNCDbUuOG3lhSbAXDOo9Y1Werssxq5sSto8rT2TL24mZIv51oiyv1oznPE/hcoFJ6gxfLFvmZBEbN4wBSHbQqmtPenING1TMGdijI1LcBuf9WN/qutYMu+koztYz1iQnjZmtCKMiIPdQVp88N+Dvjih0t2qLPMC3L8IEITgw8dnT4fqHWd8QQn3Eb1WqPHBbQGA+P3R9wikFWIhiV18gajUUxjNKVH/8dOCeTQtca7IZo8p0kTDmH+/40atWRxP9uF9drsAhAdOVEPLMGmez9VwIEswYbYunfMs/I3l/Qb6k3TIhmUL4EoPGsvWO8YDexr4Xa5aDJZ8XnUHQ+XCltIIihOZmhS+Y+2myzImeWlTzsqJHPPW4t9/lBP8X1Pi2JuzIAde9rtZAgPDRJLg0LwQSH6a9q91z5E7QBXwVlM/dRw8R9pHRTbpoaZ+gjDDwGJQ9Be8Eqgo3fK20LE37+wOfnXGVFVwenyhvxrl+Y2CjfhBziNiMMQZFOrC/0r134Pkj/xYe67Xh7C9KMAS7EFU1yrWf25DI7AXA1IfDf5f7ABhgDQ//OESacQlU8jK6fOCg7A6H3kzH5t48VeFYJ+0ortkgR0XlmKMCMtI8K7A6JztpGUaR9mrMWA3f9Kc5bTCA2bLy0Uk0Gg6dG2iV48JONuUhIldY8hlwOR0kDwZ44miGPnKIW3jATMLYVgXlLz9Hz/N7WnmuEg6OEgmhskRZzaP8bay4= X-Forefront-Antispam-Report: CIP:69.169.224.5;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-5.smtp-out.eu-central-1.amazonses.com;PTR:b224-5.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(704161411799003)(376014)(48200799018)(9140799003)(61400799027)(32142699015)(4113699003)(5113699003)(22082099003)(18002099003)(55112099003)(16102099003)(10067099003)(4143699003)(5063699009)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hUP1IuiqDutHjLjGOJcupo7nVPB6JpEcc98EQPqyvFNvlbQN0qz4RvpAEB/LInI0+I/NASgym6oS2o5aprLR5e/0As5QcU/MiD56h1MwbqgDONWN69x1ANOI0ty23YPrF2tG7st5SebNQAi71uHf+MuFa268ma9w0nTiCKA6VvYUSkJLr7LWKhpDOH4HoaTZXTx2Q9t4Vgxb7WLQPD6F362k2tq4ZRwEejLFfySOFTMLXsvt6bRTcrtSCzw4he+CYyxvEzBzjfzVdP1flC1Z5p1ponse/3C759TU5s45xGJjVsVQaVh9gthfQfbc6v2mYl9P4Ia/NcuNU90pmef3aMbTP1MqMDAB/jxOUk0sQgZJ4jc0DPIrSfGf4vpYDwf7/zWWYvX5Inlz0HywWl7tHz0PDWNTr/GX5tdlMp5MTP/ROZsqO0jFlaZH5DbkKVkZ X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2026 15:47:00.6360 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 88cf867e-26ad-48c0-b232-08df23c10f9a X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008BD.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: MIWPR08MB294223 Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [Low] usb-host: cpr_is_incoming() guard drops product string for any open - [Low] usb-host: only the string read is skipped; other control I/O in ope= n still runs -- commit e0b84d4b8555ddc11f7b8275a12f5907c2ba320f Author: Andrey Drobyshev usb-host: skip product-string read on CPR incoming #VSTOR-137800 This patch skips the libusb product string descriptor read in usb_host_open() when cpr_is_incoming() is true. It uses the synthetic "host:bus.addr" name for product_desc instead. > diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c > index d90117e4292d..271456abb0a1 100644 > --- a/hw/usb/host-libusb.c > +++ b/hw/usb/host-libusb.c [ ... ] > @@ -1111,7 +1111,7 @@ static int usb_host_open(USBHostDevice *s, libusb_d= evice *dev, int hostfd) > udev->speed =3D speed_map[libusb_speed]; > usb_host_speed_compat(s); > =20 > - if (s->ddesc.iProduct) { > + if (s->ddesc.iProduct && !cpr_is_incoming()) { [Severity: Low] Is this guard too broad? cpr_is_incoming() is defined as "incoming_mode !=3D MIG_MODE_NONE", so it is true for the whole incoming-migration phase. It is not a per-device check. usb_host_open() is reached from several paths: usb_host_realize() (hostfd and bus/addr paths) usb_host_auto_check() (autoscan) Any device opened while the flag is set takes the synthetic branch. That includes autoscan or hotplug matches of devices that are not being handed over. product_desc is set once in usb_host_open() and is not refreshed. Can those devices end up keeping the "host:bus.addr" name after the migration completes? [Severity: Low] Is the product string read the only call in usb_host_open() that can block during the handover? The neighbouring calls still run unguarded: usb_host_detach_kernel(s); ... usb_host_speed_compat(s); /* libusb_get_config_descriptor() */ The fail: path also calls libusb_reset_device(). If synchronous control transfers can block on the CPR target, could the incoming migration still hang in one of these calls? The commit message doesn't say what causes the blocking, so it is unclear whether skipping only the string read is enough. > libusb_get_string_descriptor_ascii(s->dh, s->ddesc.iProduct, > (unsigned char *)udev->produc= t_desc, > sizeof(udev->product_desc)); --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261006-usb-= host_v3-v7-0-044f668789a1@virtuozzo.com?part=3D8