From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DU5PR08MB10496.eurprd08.prod.outlook.com (2603:10a6:10:527::19) by PAXPR08MB6942.eurprd08.prod.outlook.com with HTTPS; Wed, 16 Sep 2026 13:34:15 +0000 Received: from PA7P264CA0250.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:371::12) by DU5PR08MB10496.eurprd08.prod.outlook.com (2603:10a6:10:527::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 13:34:10 +0000 Received: from AM7PEPF00000054.EURPRD83.prod.outlook.com (2603:10a6:102:371:cafe::61) by PA7P264CA0250.outlook.office365.com (2603:10a6:102:371::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 13:34:10 +0000 Authentication-Results: mx.microsoft.com 1; spf=softfail (sender IP is 99.81.216.78) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning openvz.org discourages use of 99.81.216.78 as permitted sender) Received: from nat.eu.perception-point.io (99.81.216.78) by AM7PEPF00000054.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.0 via Frontend Transport; Wed, 16 Sep 2026 13:34:10 +0000 X-PERCEPTION-POINT-VERDICT: CLN X-PERCEPTION-POINT-SPF: X-PERCEPTION-POINT-SPAM: PASS X-PERCEPTION-POINT-SENDER-IP: 2a00:1450:4864:31::10 X-PP-Forefront-Antispam-Report: CIP:2a00:1450:4864:31::10;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm2-x10.google.com;PTR:mail-wm2-x10.google.com;CAT:NONE;SFS:(13230040)(6059299003)(82310400026)(43022699015)(12012899012)(3072899012)(2092899012)(6133799003)(57112099003)(16102099003)(18002099003)(55112099003)(22082099003)(19002099009)(10067099003)(5023799004)(5063699009);DIR:INB; Received: from AM0PR07CU002.outbound.protection.outlook.com (mail-am0pr07cu00206.outbound.protection.outlook.com [40.93.65.70]) by inbound-smtp.eu-west-1.amazonaws.com with SMTP id idi5o8ea5kesv13kb0s8ripj0jinin7raa800fg1; Wed, 16 Sep 2026 13:34:07 +0000 (UTC) X-SES-Spam-Verdict: PASS X-SES-Virus-Verdict: PASS Received-SPF: softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.65.70 as permitted sender) client-ip=40.93.65.70; envelope-from=den@openvz.org; helo=AM0PR07CU002.outbound.protection.outlook.com; Authentication-Results-Original: amazonses.com; spf=softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.65.70 as permitted sender) client-ip=40.93.65.70; envelope-from=den@openvz.org; helo=AM0PR07CU002.outbound.protection.outlook.com; dkim=pass header.i=@openvz.org; dmarc=pass header.from=openvz.org; X-SES-RECEIPT: AEFBQUFBQUFBQUFHWmI4dFBzQUJvb0hLbUlTYUhibWM1TUpoQld0aG1BUlVJa0hiREVnQStiUHRpMmxEWjczWm9Sc25GYzhLOUtyNlNFMGRNOWF5QUZIcytpUEFrWlJoc0NLbFV2UXhrZ2FmNXRvSVVVR1JIL1BscDJJLzNXR0lMcUdGbllmYmVwNURjZkNISnoxUk9sTFk0S3FJWk84TlZySCtObUczeHFwZkhpUFd5ZVhGcHRoYzVCdHNQenVHdjYzL3BHNXFFOW9sOHFuMHhIREFQS2trenZLZVc5Z1FDVHBVd3BrN0FjMDJoR2VXV1VYQ2tlWEJUMkFpUUtXQkJMMlducndHS1dmKzcrTzUwMjhiTmtiQjQrRE1BR05sSktaUTlEMUtCVUdaSkZtVFhHQk1LZGc9PQ== X-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=cRW072FxqkngdrrLbolSxvhPxK+PFaf85JAD8ywV1egIheogLq/Iykx9VLZXnIC9Ito3UuyWF4z5u5Kysft8hEZ1Q9dmFMb0hoTi2lF6nYGxOUCBqwb68DW94ieq9ekxLmw8oyw7Cr4RacIfRxhJLDZrSYy6JcUb2ZO4UWmBIfY=; c=relaxed/simple; s=shh3fegwg5fppqsuzphvschd53n6ihuv; d=amazonses.com; t=1789565647; v=1; bh=hmQq322i9sm5RjZh4lwbk4ly7AeTAJTpnpFbkLKukgU=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT; Received: from AS4P192CA0024.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5e1::16) by DB9PR08MB9516.eurprd08.prod.outlook.com (2603:10a6:10:451::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 13:34:04 +0000 Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com (2603:10a6:20b:5e1:cafe::2e) by AS4P192CA0024.outlook.office365.com (2603:10a6:20b:5e1::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 13:34:03 +0000 Authentication-Results-Original: spf=pass (sender IP is 2a00:1450:4864:31::10) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: Pass (protection.outlook.com: domain of openvz.org designates 2a00:1450:4864:31::10 as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:31::10; helo=mail-wm2-x10.google.com; pr=C Received: from mail-wm2-x10.google.com (2a00:1450:4864:31::10) by DB1PEPF000509F6.mail.protection.outlook.com (2603:10a6:18:3::698) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 13:34:02 +0000 Received: by mail-wm2-x10.google.com with SMTP id 5b1f17b1804b1-49b912e2406so4374845e9.1 for ; Wed, 16 Sep 2026 06:34:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1789565642; x=1790170442; darn=virtuozzo.com; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=ISBT6Q4Q8JaZyiPvm+i25k+t6q3frqfbmgRmmY8D2WE=; b=pRNQkTiBxj/XY0diH3x6PzGrgpKd9vRiIGR6TXwKCamr/oi3unYJY9wm7kZe7Oij2U tBUvv7tp8iWJ2qG72uktW9raHK98FE6gs54dTQ66b1SdJ3YjsFDGy1nkh0WJAsTv8RFZ vyphLDonoiDEnF7uDDB1oJrT77rqfmXLby56Zcspmh7bTQv8swzV10PEetA1gOKiNxCV sSDnW39AaMUCtmXOYyUM0A5QZr8smVlhn8YARgnbkI9Y+TDn4Li0YGBgycpZU9szaVxh //kwTQCrr188q8biFWoQgXCkOKsKBaze1p9GdRkTEPtbxxqemXh6RrLzr8XaWvRKQ/Af wIVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789565642; x=1790170442; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ISBT6Q4Q8JaZyiPvm+i25k+t6q3frqfbmgRmmY8D2WE=; b=Hjy4jxqbOC2KKpCrJrp1Jd7DO80iQva6nFH8IxSiayw2zoJBXBDAYxUfvTm328IEdt g3gGcFXSRacs1tMfDnf4jDlrc4KsRBt9hmySoT6OVlbUm49dH+pz+uVZxl8HNdx+fCPQ vCMg+ecBgMGRFtOAmSm8F6uVccb8AMYrNlZA6c7f18y8aob06iVA71Vgwryu9/3hHh/w iEa+IyF9GKqb4BENQnNPb/d/EhS0mDWtoY0u42TS95qHsQRUU94xKuJ/8cyvggqAqvuP 5Dav3mfh8WotcmfTJs2dKjvXob9rwwseM/kBQI+myj52FqUADV+YD8VyOKiETLLZVM2Y D5Lg== X-Gm-Message-State: AFuF++lHfgoXuh/5VEnmPIsIjTRdQID92Qhlx/73wXUqzl2VMhEkh3OS 5DnKhxPytewl8WpRnveMcgAtlYMdKc7Er43sJXZuuELiw6UltRBj7nNv+0dxcAf6rzZ8YWuqOc6 ufPos+vs= X-Gm-Gg: AYBFou1yYfOShYOFARd+qsY3bau/spD5T7+jnxbVil1wz6IbnLFq9ggMRpV/vB1PhnJ t3mTSCzBcc2oQ9DUtS3tu10zK8fjJ6gjFLx0lorzBKbKm7ehHG3CqTMb8x1WRSY7DqGLOm/Tc8T E2B4jtiPS56JZ/hLpLv05M5OVFlv2muYJi+GpOFt5XdZhMXTKH+Gr4DmE42TSuNUuH9mJRiyD06 5em9pOL5/XZEep/4UUOCxMzdwRueNitzaY8zbwaVzkUqjh0GR7dVrbn9FH4vQ5b7xQ4765dPvng /F9K7soduM6OWb3Q6kOW1HpmixvpkTg0GKoIG2KNzIhnaGe/Nxq1uYQR5ahiBoJC8Th4fxEtxjv h9WcNlw2RuMvVwPvOZIMs28rqbV10jOqcR2ZQS2pM3ZRd8FssxsQNGkMAlam+wgU2JjhVHDkanv QK7YDdqHLhaDSDcqz802O7YTZ8d3gIYjAbSTlHHSk/3uFiiZCQQpRCAa5cL5dcbdIMxShU X-Received: by 2002:a05:600c:c168:b0:49e:715d:95ca with SMTP id 5b1f17b1804b1-49ea20ac69cmr32899005e9.13.1789565637151; Wed, 16 Sep 2026 06:33:57 -0700 (PDT) Return-Path: den@openvz.org Received: from athena.sw.ru ([2a06:5b06:b600:300:f56f:c51e:c53f:b1ce]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49e83da9a7csm76763235e9.11.2026.09.16.06.33.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 06:33:55 -0700 (PDT) From: "Denis V. Lunev" To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [PATCH hci-8.0 01/12] bql: Fix bql_locked status with condvar APIs #VSTOR-144507 Date: Wed, 16 Sep 2026 15:33:40 +0200 Message-ID: <20260916133351.1640303-2-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260916133351.1640303-1-den@openvz.org> References: <20260916133351.1640303-1-den@openvz.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 1 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:1 X-MS-TrafficTypeDiagnostic: DB1PEPF000509F6:EE_|DB9PR08MB9516:EE_|AM7PEPF00000054:EE_|DU5PR08MB10496:EE_|PAXPR08MB6942:EE_ X-MS-Office365-Filtering-Correlation-Id: 6697d7e6-5eaa-43d4-3ebd-08df13f730d0 X-MS-Exchange-AtpMessageProperties: SA|SL X-PERCEPTION-POINT-CUSTOM: vzpp X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|6059299003|82310400026|43022699015|12012899012|3072899012|2092899012|6133799003|57112099003|16102099003|18002099003|55112099003|22082099003|19002099009|10067099003|5023799004|5063699009; X-Microsoft-Antispam-Message-Info-Original: =?utf-8?B?eWJrUm5ldHQxR1dRYzJxZXJaTVJDbWppSndtREJxYlhIVTZuVlE3dHhDTmlL?= =?utf-8?B?UEFTVElYbnJsVisrTmZPUE4zS05POENrbGNUTnA5OFNrV012UFV4NFFtbm1C?= =?utf-8?B?eTV1c1MxS21sM2drcFdWczJnWHM2d3Y2V1BEa3dPbDZSeUVpMTU1cFBRN3h6?= =?utf-8?B?c0cyaGFFVWdmbDFrL2VkVEx4Z092c0M4SUZNcy9xcWdCbFU2WGNnMWRtY09Z?= =?utf-8?B?a2tod0MxS1IrSDZUTEYxZ3ArUkRvaXpteUkxbmVMWVdXV0ZQM09SRngwbmhF?= =?utf-8?B?a25ySDV1dkRERXpOcFJ5OWxPRDJSZjFLb1VENGNGdWJNdlNjbHU3TUNoNXFX?= =?utf-8?B?SmdKUTN0SWY2UEU2SStjKzZ2M2MybllRdVdydGsxUkg4Njl2bVNUME5PYURp?= =?utf-8?B?Z0RWUEt6V3ZzK0ZiUE5hUlJiYnc3VlRwdExXZUIvcG92MlZkN3J0dmEyMWph?= =?utf-8?B?elZNTUVPaXpBZ09iektnd09mWjQvQ0ZsTmV0bVpxNUV4OXpEUE55S3dlYWZ5?= =?utf-8?B?b1ZCdnZvaVF4anBMNnJsSWYreWh0QWwyVGhBbjNtdU5xZHJsRXBIZ2tnZ3hX?= =?utf-8?B?S3AzMWV5dE8xQ0R6VHJ4SW52K2pDRUU3b3lUYUlPa2dDbldpRWtNTk10NHBP?= =?utf-8?B?dGJlZlRaL1M3S2tibFVEZmM5YjREbVZIZUdHYUtONFFOTHBVeWtURWZQK1gy?= =?utf-8?B?M2lFS0lGOFVDbks0NFZFdVJFT1c4OWJJblhTUDhiY3pSUEhxM3Y2OUlWc0Fq?= =?utf-8?B?TjdWVnpKa25IWjRrNTZpcHMwZHhUSFRiY0IwY1ZtalJDTmtnQkRNMEttem93?= =?utf-8?B?bHRJZDZnRzVoOFB6Smd2dTA2ZEFpa2Y3TkNKdUlYcEJjd0tLcEl3YWZrNkFJ?= =?utf-8?B?OUh3T0k5QjZlMUxjTWVBRWJtUTk3YldiNlp6YlBFNitBQXVQazBYVlN0Umt1?= =?utf-8?B?T2l5djg0Qm8vRUZueGZZRWViWU5KSElldUtueHFCckppT0w0SEZ3V0FLY09R?= =?utf-8?B?SlNZbDdkS1dCMklWcE5mOXlMeGZmZFRCdUczZkUzb2ZQUTRJNnFuV2QwZTJM?= =?utf-8?B?QTR3eS9qdlQ0Y25WVWE5NXVPUFdBa3lOTDFTbWVLQ1RySE50UjNkWGRTL2NO?= =?utf-8?B?aVBsL2N3MGtmN25TOUp4TzVmbVBDdytFVWtzdHBwd2xsa2tlOHFvSFpqbG16?= =?utf-8?B?KzRWU29zVHE4ZUw0USsrdE56ZXVhdU5rSHd2ZDAya0tCeTVEN0xkS2tNZ2c3?= =?utf-8?B?Rmt0RmJzV1FqOWFhWTM3SThWWHJ6Ui9wbzdUcEpHOHUxenpIRWV6TTg1b1FP?= =?utf-8?B?aTl1cXVCbXZLKytiMjljVnlhdjVqZjhhYTRWZE5qOGN1RnRvQTg1M21nQzRl?= =?utf-8?B?V2JNNUg0VVNiSFdmTlRJNjJoZ2pYNHpsQlJiRFNzV3FwZWdYTjhwY3crTHVQ?= =?utf-8?B?MWNZcVJNZmtaMW5uYmFMVklwWmhUZGtWcGVsKzNPNjl6c1preFBFcjk4QmZT?= =?utf-8?B?Y0ZaNUZBd045bWY2VkloeUNHcThNOUVGZ1VGZXROLytNRzhORVpLMWJ2UURu?= =?utf-8?B?VVNEMWNUV240d1l4aTE5ZHB0NHN6SmdlNlZqTVBBUXRWNE9tajNTZnVaTUNY?= =?utf-8?B?UWRlemZXWnpTNTNWR3J6aytwbXhNN2Y2OUNWMkhvRFkvcFlSYWgvdXpmRGVI?= =?utf-8?B?YklmU1RBNUtKOThET2pVaWFTNXRlblk5SU1aa1lBd2pGU3BYTjJrV2xmZ2tn?= =?utf-8?B?akF5VjBwOEtPTEVVbWF0eXlzUzJoOU1LODNDZVZab3k4L0JrVjE0dmVPaEtH?= =?utf-8?B?OUhOYXpWckNFREI2ODFHNE9jV0pEbjF2Q3UxY1gwNHBUbmNGWW1oWk4xd2V1?= =?utf-8?B?MUYrSlJja3hvUzN3RUtIVzFrL2lOWHNMOWM5N2YvVUxQV3J6eHI0SDFpVUo0?= =?utf-8?B?TSs4b1JoTk9OMFJpVHFLc0Z4cEdPRDltYkpaYVBvV2dPdHdKdW83cWF3Qko4?= =?utf-8?B?RSs0TjNIMWg3VWYwNnZMQVh3dk5XZFZ3NDhwYXRXYU45WVNBa1Brcm1XOW5Z?= =?utf-8?B?elF1ZWxaRnZxK1NKZ090TFIvMkJqems3cGJwNGIzQXVlbEdveW5jUWJOZ3JQ?= =?utf-8?B?Q3pyWEZoUnpCU2xzWnB3R1h1YlNJR3hMRHpFc0VXdU5pYVNTUmoycVJWVDVQ?= =?utf-8?B?bkFFenlhS1NmeU9WNFJrVGFtRmZMeWxmaUpwZGp0UW1wdHhsUHQ5c1pNM2Zm?= =?utf-8?B?RmFBRVg3TzB6RDdlSWJqMENHUW1MN0lIZlNiRTZwYmgyemphcmdvSVBFODc0?= =?utf-8?B?RGI1VjV6cTF4MzllblA2U3ZFN0dwci9VZER3ZG1BMjlwVm16TlE1UFJpSzhl?= =?utf-8?B?eXJMUUliVGIvc040bjUzMHByZHBFZ2VkdXFvTjlBQXVzVmJlWHMwNDRsMGdi?= =?utf-8?B?UVY2T3loQzlRVHg5L3NCQjU1UERLNnlnVGZOOU13V2lQeUdDTldkMzQ4b2di?= =?utf-8?B?U3h4MzRoSk10MC9LOXdlek95TEZ6S3hHbVF4a1lyQzRMZjdRNFVONVBQamhM?= =?utf-8?B?OTJnamcxRDE5d1l0T2xtNnZ5TGFETWM5c1hWdkUyaEhmMU92bVlmQU5NR2l0?= =?utf-8?B?cGFCc3pCOVhVTzlraVZjN0hYN2tLbjYyTFlrN3pPd09pMjJlUk1OMHNpSGhv?= =?utf-8?B?ZlZjV292OERzU2FCNnYwQTZScU1mNnZrNFdJUFNFcFV5WW53YlBJOTJOdzBn?= =?utf-8?B?R3RYbzd1NVhxMUhxNythQXRzWE4yYlU3RzQyaGtWVThhT3I1NXhJSUthcUhG?= =?utf-8?B?SVNmc2d4VmswK0pmS2MvUXJhRkFHSVJGejZQb1NkVmlnQ2RjK0llbjdrS1Bj?= =?utf-8?B?RThnWE9yVzdzYUlYSDRHQU9ZWnFaUFRsWFpCNXVmV05hc1hSa0VoZGRiWmt0?= =?utf-8?B?cVNnN0RyVkpLWHI5RmhzUS9sZGVCN2I5YndKNCtyaXZnVHpqeVE9PQ==?= X-Forefront-Antispam-Report-Untrusted: CIP:2a00:1450:4864:31::10;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm2-x10.google.com;PTR:mail-wm2-x10.google.com;CAT:NONE;SFS:(13230040)(6059299003)(82310400026)(43022699015)(12012899012)(3072899012)(2092899012)(6133799003)(57112099003)(16102099003)(18002099003)(55112099003)(22082099003)(19002099009)(10067099003)(5023799004)(5063699009);DIR:INB; X-Auto-Response-Suppress: DR, OOF, AutoReply X-Exchange-RoutingPolicyChecked: zgey+hHZiipQJkm2A1/ecMLqW4tV2nwtUhbJHTz8HPcToUuNQB/+je0t2zk9vDLc2xS27xeMpEBEcL5s4lRF87Vdg6wmXAWx0c5ZzSu5ePsOCiCUEVtKGemDZ1w7ROEjUsYrSZKe3Is9GhsFmTJmNWDrJGhAZSS343UKegnIkNgvvw8OoW30HjR0Qzw1kQhvT0JerZt4w36jVTsQHbJBQYjxY0WQPP+ayiW/HJIkDayLC40XjG+E82JbJPTe7HFZF1L/vSO90f8eXvB5t/4tV30Vj30n1o7HpLDUkPUxqYvlEPs7Mr8UpTQIydh/66YEQL4oKl8VZq2ZhhIJwam8ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9516 X-MS-Exchange-Organization-ExpirationStartTime: 16 Sep 2026 13:34:10.6703 (UTC) X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000 X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit X-MS-Exchange-Organization-Network-Message-Id: 6697d7e6-5eaa-43d4-3ebd-08df13f730d0 X-MS-Exchange-Organization-MessageDirectionality: Incoming X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7PEPF00000054.EURPRD83.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Exchange-Organization-AuthSource: AM7PEPF00000054.EURPRD83.prod.outlook.com X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Office365-Filtering-Correlation-Id-Prvs: 953be6ae-f232-4724-0d9a-08df13f72c0c X-MS-Exchange-Organization-SCL: -1 X-Microsoft-Antispam: BCL:0;ARA:13230040|3072899012|2092899012|35042699022|82310400026|6059299003|12012899012|43022699015|10067099003|56012099006|5063699009|5023799004|5133699003|6133799003|22082099003|55112099003|16102099003|18003699003|19002099009; X-Forefront-Antispam-Report: CIP:99.81.216.78;CTRY:;LANG:en;SCL:-1;SRV:;IPV:CAL;SFV:SKN;H:nat.eu.perception-point.io;PTR:nat2.eu.perception-point.io;CAT:NONE;SFS:(13230040)(3072899012)(2092899012)(35042699022)(82310400026)(6059299003)(12012899012)(43022699015)(10067099003)(56012099006)(5063699009)(5023799004)(5133699003)(6133799003)(22082099003)(55112099003)(16102099003)(18003699003)(19002099009);DIR:INB; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 13:34:10.1134 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6697d7e6-5eaa-43d4-3ebd-08df13f730d0 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: AM7PEPF00000054.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10496 X-MS-Exchange-Transport-EndToEndLatency: 00:00:05.7572961 X-MS-Exchange-Processed-By-BccFoldering: 15.21.0451.004 X-Microsoft-Antispam-Mailbox-Delivery: ucf:0;jmr:0;auth:0;dest:I;ENG:(910005)(944506478)(944626604)(920097)(930201)(20251009189)(140003); X-Microsoft-Antispam-Message-Info: =?utf-8?B?WXNuWm5rMXVQM1QrdC9pelM3dUJjWndVQzYzYUZNbHZpN3BHWmkzb2hRZTky?= =?utf-8?B?a05VVHk1aVdSUDJMRWJtRTEvSCs4eXg5WGtHVVFzdlB0aFlVZHJZbFZmck1E?= =?utf-8?B?djdhUWExSCtoNDFWRVczdmlpcjUwaHZ4TFg0YVU3M2xQTVNOeFg0b3A5OXNG?= =?utf-8?B?emZocTZ2TkJGNE5hWDB6bDRJMFBhcHFneHpCbGRZcUhQam1jTnV2am1BQ2tG?= =?utf-8?B?VDQrZ3ZWNzRkVTRORHRRM3pNVzErYy8rS2FhL0NPOGN6ZTlJK3JCRTZhYjl0?= =?utf-8?B?Y1lJeEo3amlzSEI5a2JybnF0dTRZbFJtWERGTTF1Vm5FWGJ6Rzhiem1TOWdz?= =?utf-8?B?WUNXdy9oTmU1N0R1a1EvOWVaQzZlK3BHSmxhaCtaRGwyWE9NeXlKZnRuL0pM?= =?utf-8?B?TEM5VUoyRGFiWi8vOWc3eG54ZXQxaFNPUjdxNUtKUTRPMFJoNG1udGZ6cUhT?= =?utf-8?B?K044aTFmRjBneHp5L1llalFmaXU2YlF2d2FlOE1YWW4zVWVFaHFPSllROXpE?= =?utf-8?B?NWVZdjE3Z2t3MHI3VHRYUndmK3daUnl2U1RnUmtVemlKeTJzc0lJWm12YWdK?= =?utf-8?B?dXlqeXU2S09uanlENVdaazdTakVXWTA1cTNIaC9TWE5IditsaEk4b3AyVXV4?= =?utf-8?B?elFkYlM1Z1F1RHA5MXY3Q2lhUUJwd1FBRHpRT3lwOVhXUStxRDl4bmNvMVdl?= =?utf-8?B?ajlmWFB5bjUvei9pQ0M5MFUvbTNSSVc0NHZvZ0xNVTFLa2VmRmpKek1YejNh?= =?utf-8?B?RW84TStPdzJMUi9pcGVDOXNDUWdmL0tLNVFWbno1NWNjYWhSYUxwaWQvN3Ju?= =?utf-8?B?OGptNkJUdCtCUlVWUk9aMk5aTi84b0JkN2RIU3B3eEE2RzVDWXpzK1lWU3F5?= =?utf-8?B?VHlLRFdiSGV5dzU2Nmx1QkxyZGE2UVVBNXpGTjRWbmlFTUJrZDNvM2FEbVlY?= =?utf-8?B?bU9XaG40ZzJIUHVlb0Vmc0swSnplOGZBSGEvQmRoSXNPRUM2WXlCeDBUYXVx?= =?utf-8?B?M0xSTlM1Q1BPLzhsRmthYzhmZ2w5emJqQlFzdHljRXhydERJcW9jUlRHcFNo?= =?utf-8?B?QkhVaWtCK0hQcGJlUFBMbHJTOTRNUG5xc1hkYU5RcysrdFRDV3BMQjJlZlRF?= =?utf-8?B?RzdPanpIRTNTNWN3OG1aYzlQMWJVd21oc1ZrODhTaHpNcTJkeWZnM2wzby9H?= =?utf-8?B?TDZLWHpNMDBYUnVVZ3JEVitoUnVFLzR4TlVSTG9IYkRTRlRQUUVKVXNEUGsz?= =?utf-8?B?bXZ5V0lQYWhyU1RSeDZid1draVRTcHByZ2dsNmJCNHJGMlRWWks2V21ScXJF?= =?utf-8?B?MjhoS3RxU2l2bkFtMXcyUWs1UEpEMnY1MEJKYUtuOWs0a0ErcnV2WTBGTGxJ?= =?utf-8?B?YlhPenhCYmcxV3hJRnlDWTdYTmk1Mm9qWGMwWjF5TllxWSs3Z2JTcTFpeWZY?= =?utf-8?B?VXdiYy9JeXdPYmdQRkwyS1RMVkNDZTBERWtrOFg1YXpQdDhaMmlrRkN4dVgv?= =?utf-8?B?eDBQRTZZSFFIaXB3L1l2Z01PR1UwWXkzTkJZWkd1V0pSeVFJcWhmY0FFcW5r?= =?utf-8?B?MVlmWUk4K2kzSUUybTNHcTUyNytHb2dYSkZGYXJ1Q25mZjVoRkY1RUNNMFdj?= =?utf-8?B?VmtDUDF5QU0xSVlRQ214ZXVzOEgrZURYK2JGWGU4ZkZoT0xhWjZjTVgyRzJ5?= =?utf-8?B?dmRpWnpTb29wL0FITUdIZFdWNmpqaUVEdWlNSUs5azNxTjgwTkRPU0JiZXBV?= =?utf-8?B?QkE4U1M4NE9kME1NZU94aERYaWRvVU5BMUs4WGwxRERRa3hUVFI2T05KSUhr?= =?utf-8?B?bE9hUy9MUG1tc0wvK1NPeEw0UU1ybFVWWkhpbWliRHRFRXBwZUdFVFFxeGRE?= =?utf-8?B?Y2gxbllpZnMrNnNrVzh5SXlWUzJjcElkMmpOclJLOWF3SSsvSVhoeDBsZGhM?= =?utf-8?B?YVNNTW1vQ0dBKzR3dlBNTi9yZW5CZTRKa2g1WldKUTFaS3BiVTAxekhZekpO?= =?utf-8?B?QmpmYVUxQk1CTUlJV0djYmxneHV4Z2dBdjhaUDdDMzlQNUsyWXlWVzVmQ1F2?= =?utf-8?B?dTVHSlFYU3oxTW1rVnhNMVJjbHFKMmp3Y3oyQjdDZnkxbHZTWEVrL2hKNkgy?= =?utf-8?B?NHJlM3pnQUFnRGhNVHorNE5RczJyTWdlMXNhQWdvTTNBdGpwUUQ3eEhCVzJn?= =?utf-8?B?N3Y0R2tobHhTaWhqbHl0d251OFJ0QUJ0a2ttUTEwQXp2OUY2US92OWpZWVZi?= =?utf-8?B?TnRtSnhRUk5BWVhYUjg4UW5qWW1zcVc2RE1ZeTdZR2xKUU9PL1RWVEJObDBJ?= =?utf-8?B?NHZScHQwc3B1THRNeEhRdXFiZ2d1NGVqRnkyb25mUU9adnNxaHNFckRBK3o2?= =?utf-8?B?dTZkQWcycC9QeTFCTjJ0UUtXTzExaTBCOG4vT1FweVpKOURMeU5MZFhNTHIv?= =?utf-8?B?YjlwMElET1ZSQ0lhQVRVa3J5TmUrZ0F3L3dRVUFBSlBkSklRdEpXNXFhb3l0?= =?utf-8?B?SmM0SjJJUm9mdGJUL2pqdml0V0pEdnBaSlgrT0xhRTA0UnpMUHhKeTJYMm5w?= =?utf-8?B?SlpBb0kzV2VycjJKQVpvN1hWYUIrY2JvRHZ1c2dRVFdObU9vY1Q4dGEwK2k1?= =?utf-8?B?OVgzNFNyNkUvdXZxZlFSSmIyVkViM3hTNzAreUZqS3FwYUREd3pxcVZNb0Rh?= =?utf-8?B?MWNDbjZvSHIxQnQzSmJ0OGJNWk9CbmxEL3NJaitzUEMvM3l4ejRtekI1bVRk?= =?utf-8?B?ZFVqTXNOSFdMM1J4RmNFQytoeWRnNUVzWFRTMXRCUGpmeElRL0Uxa2JHMEJv?= =?utf-8?B?eCszb0RmSEZ2cE9CcUEzblQxbFlCeGgzZGlLYnFSc3lpMCtFWGMxVnMvWGkw?= =?utf-8?B?NmxFUTB0TGQ0OHU2OWZocmJMOENLVE56MmpyN3EyRlJBS29CL3lHZzhnRC82?= =?utf-8?B?Sm00MTBjYnZpMjFRRTBTVTFycnRTYmxhRTRPYWZ1WkQvVzlPQmdaendOL3Uw?= =?utf-8?B?bTdqSlRUMWxSd0N0QVovVzZYeURjZVlPWjNqbkZqRVpyWTczckZQY2E1V1g3?= =?utf-8?B?VWZpd0N1VEhSTlA3REV6UVoxa1Rrckphd1FnWXlJSmFyZ1JaMHpiSUI2bTdV?= =?utf-8?B?NDlOZFFzYUNoVGJESFVvODJyVlp0Y0l4YStTOFU4Z1VsK0lMaHhwdm1YU0F5?= =?utf-8?B?aU4wVWZjMXA5aS96K1hBQ0Z3dnQrU2k5elhXMU9XSHVTZWpLQmNacjNySTBa?= =?utf-8?B?N25GR3FsZ1JGc0R5L0hnSjVWNTBudXlzdWZVR0hpcVRFcVdScE83RHVDeVNu?= =?utf-8?B?YUpBaHdQbUZiaS9EbVhWRE9WTERoaUVhelNXWHlzb0tiMXdBWUlhMU1WNDBX?= =?utf-8?B?NTJ1cGZQQlFZSnZ5SFNaSjY3K1p4VGRRbDJvOHNCTzRpbWhyRWJHUzFNeUxM?= =?utf-8?B?RnZyczBpV3ZYc0JieEVqQmRBNlpmOGNIRm45d3ZzOEVNUzVTcCtFa2NXbkFj?= =?utf-8?B?TWdiamNNOHUveVhCMGg2U0REd0pNVTVESEI1VUI5cThGenltSm1jOHN0cVVa?= =?utf-8?B?UWh6S1UzZm13TEg4TWxMRGpoVzZYKzJRSzNGclNpb2tBd3krZEJ4Q044ek9I?= =?utf-8?B?bmc1elpjbEdmYnRWM01ZMm1BWjFNeXRTbnZsYWlOTzBoUlNYQ2lxWlVZaWVM?= =?utf-8?B?WFRua2RyMmNKTWNwcDRCZ1d2UlJwV3dhanZkdm9OTkdIR2VVTVp0OHU3ZU5w?= =?utf-8?Q?EDcmgb9?= MIME-Version: 1.0 List-Id: From: Peter Xu QEMU has a per-thread "bql_locked" variable stored in TLS section, showing whether the current thread is holding the BQL lock. It's a pretty handy variable. Function-wise, QEMU have codes trying to conditionally take bql, relying on the var reflecting the locking status (e.g. BQL_LOCK_GUARD), or in a GDB debugging session, we could also look at the variable (in reality, co_tls_bql_locked), to see which thread is currently holding the bql. When using that as a debugging facility, sometimes we can observe multiple threads holding bql at the same time. It's because QEMU's condvar APIs bypassed the bql_*() API, hence they do not update bql_locked even if they have released the mutex while waiting. It can cause confusion if one does "thread apply all p co_tls_bql_locked" and see multiple threads reporting true. Fix this by moving the bql status updates into the mutex debug hooks. Now the variable should always reflect the reality. Signed-off-by: Peter Xu Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250904223158.1276992-1-peterx@redhat.com> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit c89d1c879ab0281d481e460644eb5d56ace1a038) Backported because the BQL watchdog reads the lock status from these hooks: it is the only place that sees every handover, including the ones the condvar wrappers make. Signed-off-by: Denis V. Lunev --- include/qemu/main-loop.h | 18 ++++++++++++++++++ stubs/iothread-lock.c | 9 +++++++++ system/cpus.c | 14 ++++++++++++-- util/qemu-thread-common.h | 7 +++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h index 4e2436b1968..0d55c636b21 100644 --- a/include/qemu/main-loop.h +++ b/include/qemu/main-loop.h @@ -270,6 +270,24 @@ void rust_bql_mock_lock(void); */ bool bql_locked(void); +/** + * mutex_is_bql: + * + * @mutex: the mutex pointer + * + * Returns whether the mutex is the BQL. + */ +bool mutex_is_bql(QemuMutex *mutex); + +/** + * bql_update_status: + * + * @locked: update status on whether the BQL is locked + * + * NOTE: this should normally only be invoked when the status changed. + */ +void bql_update_status(bool locked); + /** * bql_block: Allow/deny releasing the BQL * diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c index 6050c081f53..c89c9c7228f 100644 --- a/stubs/iothread-lock.c +++ b/stubs/iothread-lock.c @@ -34,3 +34,12 @@ void bql_block_unlock(bool increase) assert((new_value > bql_unlock_blocked) == increase); bql_unlock_blocked = new_value; } + +bool mutex_is_bql(QemuMutex *mutex) +{ + return false; +} + +void bql_update_status(bool locked) +{ +} diff --git a/system/cpus.c b/system/cpus.c index cad32a25342..5c2bdc3f3d0 100644 --- a/system/cpus.c +++ b/system/cpus.c @@ -518,6 +518,18 @@ bool qemu_in_vcpu_thread(void) QEMU_DEFINE_STATIC_CO_TLS(bool, bql_locked) +bool mutex_is_bql(QemuMutex *mutex) +{ + return mutex == &bql; +} + +void bql_update_status(bool locked) +{ + /* This function should only be used when an update happened.. */ + assert(bql_locked() != locked); + set_bql_locked(locked); +} + static uint32_t bql_unlock_blocked; void bql_block_unlock(bool increase) @@ -558,14 +570,12 @@ void bql_lock_impl(const char *file, int line) g_assert(!bql_locked()); bql_lock_fn(&bql, file, line); - set_bql_locked(true); } void bql_unlock(void) { g_assert(bql_locked()); g_assert(!bql_unlock_blocked); - set_bql_locked(false); qemu_mutex_unlock(&bql); } diff --git a/util/qemu-thread-common.h b/util/qemu-thread-common.h index 2af6b120853..09331843ba9 100644 --- a/util/qemu-thread-common.h +++ b/util/qemu-thread-common.h @@ -14,6 +14,7 @@ #define QEMU_THREAD_COMMON_H #include "qemu/thread.h" +#include "qemu/main-loop.h" #include "trace.h" static inline void qemu_mutex_post_init(QemuMutex *mutex) @@ -39,6 +40,9 @@ static inline void qemu_mutex_post_lock(QemuMutex *mutex, mutex->line = line; #endif trace_qemu_mutex_locked(mutex, file, line); + if (mutex_is_bql(mutex)) { + bql_update_status(true); + } } static inline void qemu_mutex_pre_unlock(QemuMutex *mutex, @@ -49,6 +53,9 @@ static inline void qemu_mutex_pre_unlock(QemuMutex *mutex, mutex->line = 0; #endif trace_qemu_mutex_unlock(mutex, file, line); + if (mutex_is_bql(mutex)) { + bql_update_status(false); + } } #endif -- 2.53.0