From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id E81ED80E7E for ; Mon, 2 Nov 2026 10:51:21 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2Ao2om023643; Mon, 2 Nov 2026 13:50:03 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2Ao2om023643 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="g+QuoFB9" Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A2Anx38023637 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 2 Nov 2026 13:50:00 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A2Anx38023637 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-cc7e92f36f9so2179639a12.3 for ; Mon, 02 Nov 2026 02:50:00 -0800 (PST) X-Gm-Message-State: AFq9FYJ9EFAFwCq3gbXzEZyl8+mnz6+RsgX4Ywfj56LDF+lLO1VUZ1XU FX310gzR6pDycXsbIVBn+vEOrRy2jg7ppfBB5FW0F/Bq82QIDOzBGVY3cJ+DbikjeuN06l34Zt3 6kDv5eFqgW96Rki7WprHwijAgNvxXaoWGKkB0sGc5h/vN8IQF+XCoOQ== X-Gm-Gg: AYBFou2mihAH1oxcIjwtt/P38Jw16cgpNAJ0J1TuAWJtmlA2uE7vKiElFy/JTmKOrNc VpvsVE3lk01Y296QINjuT/ATFjoWKA5d9OrvKUVspLuSC9Q8TWs/L7DwjG0eF3NdyRippIlN3m6 T5H/NMwjllcTU40BR9Ynstm0n5dcTT4psq8kCA4OfaLNFhEWVCpC0iRfB2A/wccZCUsYxdiM81w HcXjNkK0y+mGzeb/JdK9eQSsHeHzlDNMTfyHcUnqA/NwzkmGCVLVBEIeGIQmbgVwKc5SU6ururW TWw3Oex20bwT29C5N9SkH8OoIse/KGVNDNHY2ZpvywNMDFMMp4wyYoUJog/kNV8Iy8fyHpWKp5G dNA6HrDFMQjm4uUoJGvGBaY7wVkvpYAUWqsnPmLGeJYpSJ0Arsx2Pe8nbYwM5WuKDxvy+NMc2FP OB+6ENvmcgjCUWSlxTDfAFRXtRlKHa2wjgFfs5 X-Received: by 2002:a05:6a21:798c:b0:3e1:73d6:692d with SMTP id adf61e73a8af0-3e928645fd7mr8783878637.10.1793616599146; Mon, 02 Nov 2026 02:49:59 -0800 (PST) X-Received: by 2002:a05:6a21:798c:b0:3e1:73d6:692d with SMTP id adf61e73a8af0-3e928645fd7mr8783861637.10.1793616598527; Mon, 02 Nov 2026 02:49:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1793616598; cv=pass; d=google.com; s=arc-20260327; b=e1M+cckJZMe5W/wLN5/y+gcPXwmefI6LDZKn6ETcsMmk6N/za+lYyPIJsCOm2YJTtB HqEX1sNezasPmtodT+FKksViDdYUM6TLWJzPP6jrxHhnnGrDSsLNWvlJeOEEoH/Q01wD F/RDH5ScBOQoEDWCL0Sd3zxu7+JUog8iNa6CaOGrpmlUZnQawFWfZR9dmakPI+sh/vTQ dQQaGD77gKzpc1rEJs02pG/8rUD6+2m4D3HfrwdRsjHVqDdnMKiHiaqQ6uSnzL/EGsSZ ddwJvzUik96GOMMGA6PtXhPjsdXQyeBZaGvlRg0w1K4OiNWC+LsxULxk7FoglV0KyDB7 uqFQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=fM1QUVmETiPrjrB0FHWhgy6Xe87PsGscUmhEngni8Lo=; fh=clCNQN86pl/oLfse3BpaRf9TUvkywZxckCip3X6oQPI=; b=k66YAvORepY/q8wjkskZluBI0akdOdoSLqfNPkZBt8lf23M8kTs0iljc0IYCq3jp+O GEHqQ+5he2dbLZHWluvuy7hJCotS1bPBGUBobk9zOTJZC2heN3QLvSrbaGfRuQH0qfN3 hrnIM2NJegbHMVmwXieK183C2ZWFY5OzftmPCtCItikzWVEd4wzA9layv3SsV4hs/Ty2 yFz+HwjdgZkH3KcuRnse1Prb/dvxd7LmrI5pSP5Ciu6hkNcUpajZM+GdWQaMi1T8Lutf EeqnjOOBOkgoIdIc9k+ARwuujjScIWOXJoraAfmMOFo0Xpzwj9ugYfaBz3WODsWovTz6 gloQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=g+QuoFB9; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=andrey.zhadchenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com. [2a01:111:f403:c200::1]) by mx.google.com with ESMTPS id 41be03b00d2f7-cdb09a87765si11930846a12.347.2026.11.02.02.49.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2026 02:49:58 -0800 (PST) Received-SPF: pass (google.com: domain of andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) client-ip=2a01:111:f403:c200::1; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=g+QuoFB9; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=andrey.zhadchenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z+jXmGsCeazz/JQXyJyyQ9CUaYUaBcVjlz7mfxk60NikhawhnSUPZB8tp9KBGe6b1IMHiHrQm5d0sZG8iqUmPF31xxg4AMv/366LlQoogopwyAKmf5ZuMk5Bt2oQ9ZA97qG3cwu/ANHQEaMKE+HpgR7nHrP05kXiyRWVzQaHwms3hXCdsj0YxCxVW5eCABWu6u+uGG8cYXTXRwx8WdpJdvIpzNWrZCfoe1J8SPFi4LVYt+rcKDeXcYHoDdvTkqC5KtAM4Dz9oV+N0mx4O366k71wyTcjdw8wNRfK+uLJiX8o8L0FMky7UzutIBz6/QdnP50NFmeqAKhVVn8+1FhzZw== 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=fM1QUVmETiPrjrB0FHWhgy6Xe87PsGscUmhEngni8Lo=; b=Os/ylTlMgUxepIxxMi38uvmKhKoNaeuzJW0YT7z1HQfyiEG0CBUwN/yMV1+zOq0evI3AF00BSyBPVs8JK1pdbTwgfJ3jmw5MxWJfSRAwEKOwREQYwjGN574bLQVBc3bhzRx8CLMv7Tfn6kd2gEDUYdevAkRgxkulzgzvcueWoB74ifoTjdJonsxkiI6uHlna3NG2aoLfUQXUu8+kTUZBxrMmLJJSvnNv3xSa6zaMmQR0dY8yCazfAqz8KLfqDuzV4XA+VGWOzDuuUi58WJhp5xPxsAiYdQcRLYjDlBEqHSMjzvcvk41nINYTHSRaFfdKTVzO8UMcrTSViw1M3KTZFw== 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=fM1QUVmETiPrjrB0FHWhgy6Xe87PsGscUmhEngni8Lo=; b=g+QuoFB99/j1CG1bRWp1u/fg2CEvPYUdb7YsVb7PgEeoGhjErphLsiwGZPeylV5l7/ua9HDlROgYM0ZwvbHi/9YTcfOQMS+GMXj/fmyYfgMSKqIvDv6VtRPhzIx5GSKHwlxlaOVJzQfVThYxOY82qzoUGx2kcl+mKcGF0jznkq3aih/XNZSfnKOjqjALHl5nXSzlt7zytQUeecuhqt+XCd9ZbwW2CbOw85PSOZUlk3BomLBWjCeMHPshapkApmdG+VuuBhIj8S9ypFTZmUqFrs1gOnmoVF4ELrFkOrrylzTpb9FxXkZuMpuBnYQYlWPxyjXVcmVVtyLoSeXr3ZLqYA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from PA4PR08MB6061.eurprd08.prod.outlook.com (2603:10a6:102:e9::13) by DU0PR08MB9847.eurprd08.prod.outlook.com (2603:10a6:10:444::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 10:49:55 +0000 Received: from PA4PR08MB6061.eurprd08.prod.outlook.com ([fe80::c3bf:e107:b1d2:6a00]) by PA4PR08MB6061.eurprd08.prod.outlook.com ([fe80::c3bf:e107:b1d2:6a00%3]) with mapi id 15.21.0569.011; Mon, 2 Nov 2026 10:49:55 +0000 Message-ID: <2389814d-7efa-4844-a43e-c1d492ed6868@virtuozzo.com> Date: Mon, 2 Nov 2026 11:49:54 +0100 User-Agent: Mozilla Thunderbird To: ptikhomirov@virtuozzo.com, alexander.ivanov@virtuozzo.com References: <20261029140346.465768-1-andrey.zhadchenko@virtuozzo.com> <20261029140346.465768-8-andrey.zhadchenko@virtuozzo.com> <010701a1880a9bac-d29e8150-1b34-460e-b4bb-59e288525a57-000000@eu-central-1.amazonses.com> Content-Language: en-US From: Andrey Zhadchenko In-Reply-To: <010701a1880a9bac-d29e8150-1b34-460e-b4bb-59e288525a57-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: FR3P281CA0156.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::17) To PA4PR08MB6061.eurprd08.prod.outlook.com (2603:10a6:102:e9::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR08MB6061:EE_|DU0PR08MB9847:EE_ X-MS-Office365-Filtering-Correlation-Id: 5bd4ae71-963e-4aaf-106b-08df38cf07f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|23010399003|376014|4143699003|56012099006|261009223027099003|261028144727099003|261021123027099003|261026121527099003|261021121427099003|261026140227099003|261022105027099003|261022075727099003|10067099003|18002099003|22082099003|6133799003; X-Microsoft-Antispam-Message-Info: yQ87qcAVTKPy6Ac7NgnCiFuTd0LuIdojhqyr+IBAc0y/qZCHBFA0AB775vwqQj06ltfDH8TKce4H5tjnvUI/G8fywKJNZACaUivSQBXE9nEwRwafeoZrQFIgJ1xY0AJifmjY2M9FJhrPqBf5urkE68AYz8oYe7/Y1PjKgMXuj3cS0ZK5MgDXYYKnKUd/Ddgs8TiTuxMP2l4dCDAMWkN71EWUIR5CxZcaeT1U7HOHLq3L/4wn4o/bYFzSOy9HD+zpPPnVpFZz8QF8aew78NHxS5MoRUgAm5uU6y8Zdl4ue9bwclpuRjUyOnv814rNldVJxU32ZMKCsahIpKR0Ve6Yy0NPumE2AulDnkRLgff2ZD1PyW54d88TazZFJEqs1lrbayJAfxlVT0bazt8Ibuo+zeEWhAto9UoKUv9UK9TGukz+lgUoDBypgsW2s3DAGAIeBp3xeDyZGKWI8ziCm23t+R65LWGzZlPuMjnB6MR9n/Tvn8TmV14dl2pmPBDVs/yqg5ExqxSvUgg9IG3oNQS2R7Xf8L5sLPVq+VlEGHy1N8SbMXzUZYfugcVS8xkrqkO9B3OQIpqTUTCCtP6bGlkTxCjyx84Hns0WI9c+feuZTa/pNEPvbzorvc61AiAqPYRl X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6061.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(4143699003)(56012099006)(261009223027099003)(261028144727099003)(261021123027099003)(261026121527099003)(261021121427099003)(261026140227099003)(261022105027099003)(261022075727099003)(10067099003)(18002099003)(22082099003)(6133799003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OVVZMzdHQ2FWeHNOTS9la2ZqTCt6d0M4UndKTFNlNmVKQjgxQ01jM09jQTI0?= =?utf-8?B?bmhLa2Zsem13RWpjNnl0OXcxaVVHV2hoVDNrZjQ2SXRacVZrZ3RvN2VsUzBh?= =?utf-8?B?dUhwNTFVSE9BT2tObGs1L3lmcEMxWWtOcit1dUxpaGNTdGNGcXlDRDZuOEdn?= =?utf-8?B?ZEVhbU1neUg2TTdZZ3Bzamo5MitHUDk5ejNoSnNQSmtiem92eFRzT2lBUGZp?= =?utf-8?B?aWZCaytQWkRxbXNHWjhoMlV5dTF3NzRubUpBbkROUUxkeW5sUlN3VGJJVG9z?= =?utf-8?B?emFrbUJnbWRIc0FSalVPT0xhNTZoSWpJYlhmRXJZUUw1ZHRLK0k4bDZXMndB?= =?utf-8?B?bngzZVNXaXJiR0NaT1NsMFdYWENaM0xCWEdVNWlUSU1INUE0eFFNRlZFUTFB?= =?utf-8?B?RktWY1pFRVprUmhVbk1hRjRGY2wvOTB6NzMyWXpoeExtV3poK0JrRjJVK3Ay?= =?utf-8?B?WHJ3Z21TWVpjaHBtYnd6KzI4aE51REt3V3dMZkdITEk4TWNQelJEYTh5S0M4?= =?utf-8?B?SGlxcDE4cnVZU1dPT3BINUw1M2NsVW1DQWxvODhHVXhLRURlWnI3T2ZFeUNl?= =?utf-8?B?Q3o3TWl2OWRBR3FyalRWb0dnMXV6U0V0YzRFVUcvekZtdmVobmJpd1JJYnJB?= =?utf-8?B?TkdxcXRTLzFFamlGVDFpek93M2lFMGJnVURTMmR5QlovMXEzN1NZZHliZlFK?= =?utf-8?B?ejA1UFlFY1JTQmRkUm9jbUcyNHNWU0dseklZa01iQ2NaRXlmaXYvZDM3R2FZ?= =?utf-8?B?ZkpRVXloTE9yZmx0S3lJYmJneTEvYXJqR0FXcDhkMDUzODd4bkpCUlB6K084?= =?utf-8?B?dFB5NFBPNHdKTkZJRllldHNtOGRnaEtmbHBaSGttK0JrM2xQU0J0TzZGYzZv?= =?utf-8?B?RE9tcG9mSHdZNlFUSkwxVVhGMjVDOXFTUnh5dGVrQXkyYmp4dHpUR0dYVFFw?= =?utf-8?B?SWUzSiszTnhFWDAxa2F3NnJEM1gvZlpjTEt3ZGVOYXNGUVA0MTlMOUJEb0Z5?= =?utf-8?B?SnBmdkVMMjZ6THZleElUYjcwVUtZMHRaYkVmc3NmQnRZTzFHTURmRGZXejhO?= =?utf-8?B?VGJaY05xZ0RPem8wTmoyQ2JGd20yY3ZVckNxTnhEdXRsa2ZGbUh5WDg1Y3ov?= =?utf-8?B?WTc2YmkyNk11OTR5TUMyM0xNOXF4aitpc1FENDdqd0ozYVBEVmZZVGp3aU9X?= =?utf-8?B?bDM3UVhDMEU5cHA5eGtUeGxpTGJpMkFmTXY2MmNsaTBrK1E3bXIrbUg0S0ZP?= =?utf-8?B?RVdtcVVWRGI4V3RiTk5OM0xaS2x2SUQrcEhibjBBVlArU1VhcWMwMS82SmdX?= =?utf-8?B?KzEzQ1JPaFRJN3pQVW1SVWQzRGZHbjFGRS9MMFlIR1lQRW1Pb2tleGh3R2pF?= =?utf-8?B?SWp5NlRJNTBycHBWdGpDUFQvcnhQVW1wN3pXbERpRUNucGVvaGVuWGxXeERU?= =?utf-8?B?cTBHc1J4RjJuaGg0enJJM25tMGJnVkRnOW9tMXhjdncwcXJvcW1TbFNTNWdY?= =?utf-8?B?cndtUDNUZ0FpbktJQWtUWXN1RUVYZjZlQlRmKzlFOFRYZ3FOS2xqSXZjTmJp?= =?utf-8?B?d2FscjA2QnZSaURTUm0rWWw5UTlQRXEva0ExMzBtSlN2MFIxTi90U3BWY1FW?= =?utf-8?B?VzBORTZJa09ueXo3Mng2cjlSN091bEJWV0k2SDJtOUJNR0JOZmNkQU5laFZP?= =?utf-8?B?L244QnlxNk9pY2hqWGw3bEZJN2djVVZiMlU3dmJjRjJoYSs5SHRjQml1RDdM?= =?utf-8?B?a2ZaM2N3blB3eWs3Ny9LK3gwVEVqdFBTaUVraVFVSm1VZHhyc3hJRk44RUZI?= =?utf-8?B?ZnlZNVd5MU83Mnd0b2h2MnYwcVB6Zm9mZFBNSSt4SjQ1RVY0OGJuTk9nVThD?= =?utf-8?B?aTFUcVpZNnVqNk1QWkk0SkVGZXMraFNqRUpRVWpTUkt2bUxCU3FXN25GRndt?= =?utf-8?B?WXQrdTRVZmVQOUpTenF2REpVSEord3J3NHhQTXZ2RmFUKzVMSXhsOUU0VkVQ?= =?utf-8?B?d0RhNGtPS1dyazYyWkFhbXlYVFo2TjM3WURhN1pUMWF2VFcyOGNRclB0TWFC?= =?utf-8?B?V1c3T1dQV2piZmRaL25rUzVjZyswVlRTR0p2UkpiNHM5WFJrdHdnUHYxY2l0?= =?utf-8?B?M0VUM0s1ajh1bUJRWFRjeVlZM1FCZktYZjcvRzB6QjdJVmhaZEVBanlDRk1C?= =?utf-8?B?eS9lU1VTcENPUFo2bzJIS0czK0FuRnhMMEJzK1cyVVJtMTVUdW8vTFcyQnJY?= =?utf-8?B?cFpITmNQNWtOZ2R0SXZjektySUE0R2JkTlpyQUFEaVQwZWFRdFNrOUtCc2pH?= =?utf-8?B?YTlJSXNCY1U5U1loMno0amtCYUZWQWIyb1VFMWsvSGpPNEVEQzBWeTlPVCs5?= =?utf-8?Q?a5/UKEbXajKRqF1o=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bd4ae71-963e-4aaf-106b-08df38cf07f9 X-MS-Exchange-CrossTenant-AuthSource: PA4PR08MB6061.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:49:55.4723 (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: YU6dnlDMTF4Vqty89gL5dE3XDpMCMutg7KohClPdk/Dp/xAPsmb9hoF3aLSYAMZinmU80U5e1iLxlIp/B11hFq3b9x/QlFaRgciO4s7HTu8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9847 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 7/7] drivers/md/dm-qcow2: process fast path qios in per-cpu batches on a workqueue X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org On 10/29/26 15:22, no-reply@sashiko.virtuozzo.com wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [Medium] dm-qcow2: per-CPU fast-path worker serializes blocking qios, losing per-qio parallelism > -- > > commit 899ab5e8861b55a2a4717a14d3e51773e55d3c87 > Author: Andrey Zhadchenko > > drivers/md/dm-qcow2: process fast path qios in per-cpu batches on a workqueue > > This patch replaces the per-qio work_struct on the fast path with a > per-CPU llist and one work item per CPU. A per-CPU busy flag limits > queue_work() calls, and the worker drains the whole llist each time it > runs. > > Link: https://virtuozzo.atlassian.net/browse/VSTOR-95494 > >> diff --git a/drivers/md/dm-qcow2-map.c b/drivers/md/dm-qcow2-map.c >> --- a/drivers/md/dm-qcow2-map.c >> +++ b/drivers/md/dm-qcow2-map.c > > [ ... ] > >> +static void qcow2_fast_submit(struct qcow2_target *tgt, struct qio *qio) >> +{ >> + struct qcow2_fast_cpu *fc = get_cpu_ptr(tgt->fast); >> + >> + llist_add(&qio->fast_link, &fc->qios); >> + /* Pairs with smp_mb() in qcow2_fast_work() */ >> + smp_mb(); >> + if (!atomic_read(&fc->busy) && atomic_cmpxchg(&fc->busy, 0, 1) == 0) >> + queue_work(tgt->wq, &fc->work); >> + put_cpu_ptr(tgt->fast); >> +} > > [Severity: Medium] > Does the busy flag reduce fast path concurrency compared to the old > per-qio work items? > > Before this patch each qio had its own work_struct on an unbound > WQ_HIGHPRI workqueue, so a qio that slept delayed only itself. Now at > most one work item per submitting CPU is queued or running. > > qcow2_fast_work() then runs every qio on that CPU's llist serially: > > qcow2_fast_work() > llist_for_each_entry_safe(qio, next, node, fast_link) > do_qio_work(qio); > > do_qio_work() can sleep. For QIO_STATE_START it goes through > prepare_one_embedded_qio() and then qio_try_fast(): > > do_qio_work() > prepare_one_embedded_qio() > create_bvec_from_rq() > kvmalloc_array(nr_bvec, sizeof(struct bio_vec), GFP_NOIO) > qio_try_fast() > process_one_qio(qio->qcow2, qio, true) > perform_rw_mapped() > map_and_submit_rw() > qcow2_call_rw_iter() > file->f_op->write_iter() / read_iter() > > qcow2_call_rw_iter() uses a sync kiocb (init_sync_kiocb). On a > buffered backing file, page cache, filesystem locking and writeback > throttling can block there. process_one_qio() with the fast flag set > only defers qios that need metadata changes, so plain mapped reads and > writes are issued inline. First of all, the backing file is not buffered. We explicitly require O_DIRECT. Secondly we only submit IO here and this should be quite fast. Also it is an still upgrade over single kwork. In general this problem indeed exists but not in this configuration. If we add more stages like compressed read which can really sleep (for buffer allocation) this may become a problem. > > If one qio sleeps in that path, every later qio on the same CPU's llist > waits behind it, and no other kworker is queued for that CPU. Could a > workload with a single submitting CPU and blocking backing-file I/O > become effectively single-threaded? > > The commit message gives savings in context switches and pool->lock > time for 4 submitters on 12 CPUs. It gives no throughput or latency > numbers for the blocking case. Could such numbers be provided? > >> +static void qcow2_fast_work(struct work_struct *work) >> +{ > > [ ... ] > >> + for (;;) { >> + node = llist_del_all(&fc->qios); >> + if (!node) { >> + atomic_set(&fc->busy, 0); >> + /* just to be sure we look at the list after busy is posted */ >> + smp_mb(); >> + if (llist_empty(&fc->qios)) >> + break; >> + if (atomic_cmpxchg(&fc->busy, 0, 1) != 0) >> + break; >> + continue; >> + } >> + node = llist_reverse_order(node); >> + llist_for_each_entry_safe(qio, next, node, fast_link) >> + do_qio_work(qio); >> + } > > [Severity: Medium] > This is a minor point. The loop has no batch limit and no cond_resched() > between iterations. Under sustained submission on one CPU, can this keep > one WQ_HIGHPRI kworker busy and delay qcow2->worker and > qcow2->fsync_worker, which are queued on the same workqueue? > _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel