From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 50187802A5 for ; Thu, 8 Oct 2026 11:48:11 +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 698BkqRB023374; Thu, 8 Oct 2026 14:46:52 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 698BkqRB023374 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Rro6oTAX" Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 698Bknna023370 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Thu, 8 Oct 2026 14:46:50 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 698Bknna023370 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3a82c7e8fcfso3873351a91.0 for ; Thu, 08 Oct 2026 04:46:50 -0700 (PDT) X-Gm-Message-State: AFq9FYLtk2+xAWeayP23q0ZF7KDpndtzYygUABKWqnGillXUZ8HuMH1L c2+Yn0Qm4CgtSiZbYEYXBeccAwnqBbE4l9FldxDRxoGh9NCje2zjOVDlUlJzH4Xo6qYz2VxWJyg zcKHUfNFw1zbvA5peeoX/4Mdw2ohlGI+EZDjGR0HFDlWAFZ1AJMnVNw== X-Gm-Gg: AYBFou1EzGwanqLZoHJtx8N2jRUbX91wiSYeZVhaYqOUHmYaIXNq1NuUo7373L6GLRE olhPG8TITYBXHk1k9uAYRPEteczP67zTt8wS2K0VYSrznvaBKQ/6QzsVuovUzmkKZZKKidWwSX2 g6lgHBJu9wdvA+FS6YsHpymzyikRyPDA4eKGYN656X+KT5xGwERYW8RQJ9jentPxGgi8wOdjx3u 63/dB+DkDHtNWac7aC+TQvhNKgv3DApLk9v3MBptr0/vUSWzkpkBAdlVXHZQvPF4atNp6c8scrL /ZGqpC01FtKzVvauh1VgsJkdmhfY9JbyKar7ajbK4+d9DXq9GBybInS1pvvm+AgfwJKew1wC7JO nUjMvjRrRrguG1u4+gUGSgPmMh+RGypx8DTcGGvElBX1gtN+LRlyP8ojPBaHcN5Pv8LnNRBeuwl 8kwt5BEsrkcMaM2a7ZT9+gmSpIGxk5EDA= X-Received: by 2002:a17:90b:17c2:b0:3a8:272a:a32a with SMTP id 98e67ed59e1d1-3a8a1b594c2mr4243530a91.40.1791460008953; Thu, 08 Oct 2026 04:46:48 -0700 (PDT) X-Received: by 2002:a17:90b:17c2:b0:3a8:272a:a32a with SMTP id 98e67ed59e1d1-3a8a1b594c2mr4243517a91.40.1791460008431; Thu, 08 Oct 2026 04:46:48 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1791460008; cv=pass; d=google.com; s=arc-20260327; b=YuE7szPY/zujjjLxNXkrFbnP9WelCBkeWcFUoWmyJ/b4EisuxfoMv+ZCaIWX8lTE9e fnu8D1n8qLWgmrCUlEerFBC1vooKfh0AjNfOnDpHARKfN3SSuydjbHj7jHyZCFzDd1lG bCzROmVdMW27jk4NNGA+ne2NkIu9K4GddQRb6n10SuPfaJdD1uxOFayIQQXkRM+mKo89 st0cJt/+ROOQBfX9D7NdnonX3Kz3tCOqJpktj7hYWIXuFdp2h88fMlgu1LoZED7/lC5F C1DwwIWGMA8VP2fpbQDK1Rv09dILfcPXVc1rELiGAVsUsMPZ4g+JO2TrGQvjYK/L+V3f M2nw== 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:content-language :references:cc:to:from:subject:user-agent:date:message-id :dkim-signature; bh=O/47wMix98PeYW0OXDNJz6p3V0w75vRVcFUBPz5ovxQ=; fh=tMEsLKuDQ09qqpmC2pLav8OyMwzw4kazC9GBASug5RM=; b=hR9WrrVY7re39rPawXYeNVh3HTTDwDTgHDlQCHO74ALboNomdyXpyt6f0trmCOIudo 8UVXA/9/m/Ymk4l4mE6Zr9UJwc2sQ9TJtuBZkNEqcCnxNKFZtIpJXIfkdsH5VOKwNPMW IY3swpDc4+q/wenvZznBHpvcqhZTfKaMoQ5xDottxyP4x2IRcMX4pGPGR/tnjU8vffJX nPHLdHYBHayk92QSlu/gUpLMeKX5ywXkiaMIf42P/poWSLjSXYE6AntvOFiWa+qYxp3Z eVw4mlep0UvoHHgAdkvYvNRG4i/49GWD5c3fflV7R3aiHhtY0ziryV+t4wtdJe92qDTa 8DXg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=Rro6oTAX; 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 alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c200::3]) by mx.google.com with ESMTPS id 41be03b00d2f7-cd0ac75a055si7796204a12.85.2026.10.08.04.46.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2026 04:46:48 -0700 (PDT) Received-SPF: pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) client-ip=2a01:111:f403:c200::3; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=Rro6oTAX; 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 alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=alexander.ivanov@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=UWh0ZNWbXjIHYtmdCH3+zM7fPMi0sne++j/bEzi78x+kNgP3z0cTI0GGFT/v469HXnaieZtfirBnb00uQQqh/PbieoBv3LtDdl257Gbj99HrKMM9ETk3U5m3dps3mi8CJ8AR4Xdh8WM25DH9FV825cPWKWkUR6zg7EK8peo9FoHacW5JnfZqm4Mo1E/1UfIixt9sKz6yx4pJouOxzaNHUaft8Bj/eF76GB16jBDdRlFOaUxsJdh8fdxLzSvR2vBVlEENDJ50831beRX90NyFPlkBuBwUm4YRwRCcy5yvdoTQCQqv65vwRL87TL+iouzRrmGTGo6568iBTvxCAFdbpQ== 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=O/47wMix98PeYW0OXDNJz6p3V0w75vRVcFUBPz5ovxQ=; b=T+i8f46ErqZXWCOcR9I461vm0EYiBqY0CqSesrGp6jdHqy+XsSVPtuyZ9cP6V7ut1hvrEJLxOsuluBRKWKMZULEM9Ol4nh5r0SUEwQpMTQg53BwNi72KsQe0PdGN4Wwg64ZO5bT25Zwu6Cv6/rMIw4aDQNKggRMGiEWXkWEXs0NVp1ndUmMRKveKVHvmq+lcdDm/XxZ5CxLPhPJVSSqpK+TtkJiWm4Oat/8A/s1SMlRyDY03YVG1a6uA3uHxSMcysXRVKvjFrfGeoeCbrQRlT7lZbVYoAye6+tV3Ff5Rdzc2Xf9m9Ph1ATfShuQcO9iXKKJwdXYMuWsPBIlMATxrWQ== 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=O/47wMix98PeYW0OXDNJz6p3V0w75vRVcFUBPz5ovxQ=; b=Rro6oTAXL0Z4jb0wu/twLCPNHgicmmhD22Im/TH/75Fio9kmagBr2GvoL71eHt9W9WQHlRV0Sn5eGjtBAoUpRSBdMYM7YE3sTerZGBkH83WcG86L+fPI9R6R7zzNfJfhgnjr+HaxaLB0EulviLfb1BF6H4n1USMaPYa+fduJ3FwM4OlOlOndigerdR/iu/9xxzEL07Iytxkcwee6fWuxUnxhpGOeUa72xJHMEo2T1K9/gUUdi5uj6xc2oZHM7L85eMA3NnddqL3iRKjZ93mmhoOFMMsWfL8s9GeJ/pypOiH7LZ5oGJbZGDZSIuGB63pedZFtAEjoa3Or4lqCz5tvJQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) by MI9PR08MB999879.eurprd08.prod.outlook.com (2603:10a6:290:ce::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.14; Thu, 8 Oct 2026 11:46:45 +0000 Received: from VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a]) by VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a%6]) with mapi id 15.21.0522.002; Thu, 8 Oct 2026 11:46:44 +0000 Message-ID: <2e7b895e-ef7e-4069-bba9-a7d039d6d357@virtuozzo.com> Date: Thu, 8 Oct 2026 13:46:43 +0200 User-Agent: Mozilla Thunderbird From: Alexander Ivanov To: den@openvz.org References: <20261008073837.510678-1-alexander.ivanov@virtuozzo.com> <20261008073837.510678-6-alexander.ivanov@virtuozzo.com> Content-Language: en-US In-Reply-To: <20261008073837.510678-6-alexander.ivanov@virtuozzo.com> X-ClientProxiedBy: ZR0P278CA0065.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::16) To VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10743:EE_|MI9PR08MB999879:EE_ X-MS-Office365-Filtering-Correlation-Id: 84de6de5-d7ba-4d2a-65d4-08df2531d3ab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|23010399003|366016|10067099003|6133799003|56012099006|4143699003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: rqEvc21MI/BS7TdNdb87IzgW8cOQ9WHqlFkuiDc+zGSLM7wDyyplHrG+yFhNS2cFd4vm5jhXJTu8arzRcL/3BzaYqEfS0y9oGskcFlE247k+qugR9MJHFbQ0Jsz33wjGBEDSZgXEbP5etPs4AEujpH5Zb9W68+jkxEX2LRbfzvgIGoGsgCAIBz0QfcCaapq4CXMma1AuLSmtM6R6jmJCp9pGGGsH6gNsbbfL85A4qEtyI+rvK+EuN9Zb101VQ+PU7jeBVQwjqxWSlviVw8ls3gNQ1Mjr7X1yDh8qbAM29xn9/WrPp702LSHmpTj22IZfvFUL0ozbrypmTejW2sUHkS3hzfQFq5wnTt7jfW8/bHAdMxOycPZZKfBSBHXuRbpFKjK5JcEtvn5/7o7kQPewcF5xR0JwytQe8lEP/xVuMwLGZvHRS/qEUHwgvP3D98VUxnR2k5TFgTNeUc8g/PJDHmC/1rkE1bSGzOZ4r6zE4Nl70GpFfKc1XMl9iGNUyhfilH5YhYSlXqeEOouVmAlzFX9rgQT1Ff51BUTFzqViDe1V/qAPAoxzhM2k1swYp8SKh3PERgwMlnnVjGrf7Hb1PUUzGNenOpgI3NXlBh/JiUXfIsZHYvbgntnMDv6AtCngLJuly4GJ3YWGNhJy0xiCj/J+M3AuEWjHcX4A0SAsc1g= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI0PR08MB10743.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(23010399003)(366016)(10067099003)(6133799003)(56012099006)(4143699003)(18002099003)(22082099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Sk5ObXg2THU2L2hwbFJxODhNWjU2Um5Pb3VsRG02YkxFcmR3MVJhTHphZmRF?= =?utf-8?B?eEhBdEZSOCsranhOOXpZdWlZL0I0QlQyZzAvNDVPb1FFWE9MNHZFQWlxMkJj?= =?utf-8?B?Y255ajJ0Y09PL1ZscXFIODM0NENTSUNIcjRNMUdFdSt2bjg1eWJ3dStpYTA1?= =?utf-8?B?UjVUVWgySnBhVE9LL0FpdWNrbjdxcmtPNzh3anNPcy96ZWtjQTBVNU9zTjJW?= =?utf-8?B?WUNPUXRIME5CaEZueXlYMHQ2bTkzM3FrUTQ0eWZsaDdHK3l3ditwNldMN3F4?= =?utf-8?B?UFpsVlNHdnU2NHlzbjZHS1p6THcxRGJtYmw5clBsV2VRRjRBSnlWR3Njc3dk?= =?utf-8?B?VGlQYXhvZEhFcFlYZDdjMVQzeG54M0FLYlFTOHVBWE5aekdKT2tPNldiekNH?= =?utf-8?B?MmtqY21OQjBvdUN2eG9IU2NQYjMvVk5TOFJDejZ3aDB4dmVPSnF6QmVPL0VG?= =?utf-8?B?THBvemJQVUlVdkpJMDVoV2xlT3hGYkxyK0pYaUNzSEEyQ0J3dGhWekREWmZY?= =?utf-8?B?MU13dW1YcVd1dnNLUVY4MXJvTWNuSTVVVzhqQnZaSk1ycDlWMytyTTBodUhh?= =?utf-8?B?SVU2bllNbmRNZHhrdlhadTZmcEYwaTk5ZHZqc2prajVjSklRMW9vR3NhR3JW?= =?utf-8?B?MEk0TDFGb0xkS1NwTGVkMFRKTi9pY3BzZEV1T1p6cmp3QUxBQjNNMGVjRlVM?= =?utf-8?B?Y0NZbDZKcHZobHVQazQ4Z1V6dTc2cmVqSjVTVHlrN2NXcEtJdSs3VThNWWhC?= =?utf-8?B?a2kyVGNkampFcUZNZ0RRQnNyK01OYjhtNlB6czA1RDhqc21DSW5rckNEY0Iz?= =?utf-8?B?Mno5Wm1XODFmQS9aZ1JVdFRLR3pEaGN3cGZHczVFWU13M0o3YWFFYklURzFT?= =?utf-8?B?cVJXMnZKd3VPMTZrTWRDNnJnQ0F4Vm5OS3Vkdjk3ZHhOSDdyZ3dob0RZMDdS?= =?utf-8?B?TXNac3NtdDNpaWcwVHlPSGJmbmgxVW10Z2RmbTVmZi9oK1MySXBOWXFzR1Jv?= =?utf-8?B?VG9VTHhvSVptQ0lNdmE1QnFGSnpQNkpCME92czhGUDRuTGxFT2VMaXloL3lw?= =?utf-8?B?MmFERzlvMEJLcUJFaUNOcEFVR3ViU2RINDdkZm0vM3U1c0FxL2g2a2cvM05W?= =?utf-8?B?ZkM0bVRQWDN6bXFVSTcyL0QxWU1hWnNuUk1rcmk3blMvbEJKYUUyYi9wQlh5?= =?utf-8?B?M3czdlVpbXVuUnZQc0tWZUozWkFtS1VZeTI1bmNPNDlXcFk1RlpzQ2xpeE5r?= =?utf-8?B?elBIRzRmQmpRbFZ5WHZ4UGpZcllYUTRSb1FkSEFGdzNwQnppZW5jZnJwWVd5?= =?utf-8?B?U21TN1FtYXZ6QnFyOVdpeGczazFRTk9SUkZBNVZEYVJqeFlRV1puQ1p3RWlO?= =?utf-8?B?dVdTSGsxdkVybTFETWpqaE4vSHJLYyt3b1UrandIUWRFaW5PcDJaa0haZ1I5?= =?utf-8?B?SWg4NThTN2xkK3pzeG9tTmUyMUZldkpXZWlFVkxZMXBsMnB1OExCMUQrMFh4?= =?utf-8?B?Zllqd1FhdTY3djgxVmRjL1BSQTI2Z0lRTy9ZUXYxTmdFYXRGWjRyUDJNdnJX?= =?utf-8?B?d1BPRHVQMnhJMFl3VkwrM3UzLytKemhmUy85TEZQZktYR084NTh4SFkwY3Fx?= =?utf-8?B?UEVTUU1EUXNsaFVzS0xEM1VYRXFNV3pXNjVGQnE4VXU4eU14enpKZm5aR3NI?= =?utf-8?B?dmc5U1A1Nk15TXdYS3h2QTFzdlAybk5ubTV0UnR2RVV0NUhMMXcxa0hyeUh6?= =?utf-8?B?SXdRRVJUTEt1M0JWSi90L3I5UDlDL1laN2VPSVJFcG04eDI1SmUwODcxcHJK?= =?utf-8?B?MFpHM2lESGdVQXZ3bElDQVB6Y0c1MGNFY21sZnVrUnVCS2k4SFMrWkVOLzIx?= =?utf-8?B?WUNqUDJmSU9BN2NJUkNuTDMrUXl1Nmw1SzdHajBsUWhpWFBUSmwzMlRZQ05q?= =?utf-8?B?ZERBc0Z3Zm1Mb01QUFdGQUNWRlVFN05nVmMwV014L0J5QWw2ZTEyYW4vWGFu?= =?utf-8?B?TlJhNWhKVDh0Rnk0cFUxZ05zeHpzZWFhSyswcFhNdXpHNW9CN2pDTzBmaHRr?= =?utf-8?B?bmhuRXVDVmU4Y3FnMHBIbTVFYlJCbWZoR2tGUFM1YVRwa1Q2RG1uU1B3MUx4?= =?utf-8?B?V25YakdJU3JTT2dXSk1sZXlCSWpuRGQ2TGdwQy9iaG16QzBESWlQdTMvWVZJ?= =?utf-8?B?QmFWSEphaUZLcHkveGNXdGFFRXJVUDYrYXE1bnlrR1gyUUF5aVh3SHk5bW1J?= =?utf-8?B?NUlPUTBUOHFWa2hVeWlWOXJOTVhlZXpiWVFreVpaV0QvbUVFbk9sb1d5YjV2?= =?utf-8?B?RFBrd0Zab3BIc0NtR1FCbi95cDZ1K3IzNG9SNm03aEJwaXA2OHNXUFRSM2ow?= =?utf-8?Q?MU2mKnu9XO7M/+x0=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84de6de5-d7ba-4d2a-65d4-08df2531d3ab X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10743.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2026 11:46:44.6433 (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: dKLLOeloYNd4EPMkMG3GIpf8L3JuuYLttbVZ/yijmaxc/MaOYu88z9YxIfxEJCbNIIUJfqfLluscbutqt/i2fMdKPFrANQWfWn8DL9I4eTI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MI9PR08MB999879 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v2 5/6] dm-ploop: reload metadata on resume 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 > [Severity: Medium] > Can these GFP_KERNEL allocations deadlock under memory pressure? > > ploop_preresume() runs in the DM ioctl task while the device is still > suspended, and no memalloc_noio scope is set on that path. Direct reclaim > with __GFP_IO and __GFP_FS could write back dirty pages of a filesystem > mounted on this ploop device. Those bios are held until resume completes, > but the resume is the task waiting in the allocation. > > The same applies to the other allocations reached from here: > > ploop_reload_metadata() > ploop_setup_metadata() > ploop_setup_holes_bitmap() > ploop->holes_bitmap = kvmalloc(size, GFP_KERNEL); > > and to ploop_prealloc_md_pages(). The ploop kthreads avoid this by running > with PF_MEMALLOC_NOIO (PLOOP_PFLAGS in dm-ploop-map.c), but the ioctl task > has no such protection. > > Would it make sense to wrap ploop_reload_metadata() in > memalloc_noio_save()/memalloc_noio_restore(), or to use GFP_NOIO? Wrapped ploop_reload_metadata() in ploop_preresume() with memalloc_noio_save()/restore() rather than switching to GFP_NOIO, so nested allocations (holes_bitmap, md pages, backing fs reads) are covered as well. The same applies to ploop_truncate_unused_tail() in ploop_postsuspend() in the next patch, fixed there too. > [Severity: Low] > The commit message says "On error the old metadata is kept and resume > fails." Is that fully true here? > > ploop_setup_metadata() overwrites these fields before its later checks > ('custom FirstBlockOffset', 'Too short BAT', ploop_setup_holes_bitmap() > returning -ENOMEM): > > memcpy(ploop->m_Sig, m_hdr->m_Sig, sizeof(ploop->m_Sig)); > ploop->m_Type = le32_to_cpu(m_hdr->m_Type); > ploop->m_Sectors = le32_to_cpu(m_hdr->m_Sectors); > > The restore label puts back bat_entries, holes_bitmap, nr_bat_entries, > hb_nr and deltas[], but not m_Sig, m_Type or m_Sectors. The same applies > when ploop_prealloc_md_pages() or ploop_read_delta() fails. > > m_Sig and m_Sectors are validated, so in practice only m_Type could differ, > and only if userspace rewrote the header. ploop_delta_check_header() > compares against these fields, so a later delta check could then use a value > that does not match the retained old BAT. > > Should these three fields be saved and restored along with the others? Fixed. >> +void ploop_wait_prealloc(struct ploop *ploop) >> +{ >> + wait_event(ploop->dispatcher_wq_prealloc, >> + ploop_no_pending_prealloc(ploop)); >> +} > [Severity: Medium] > Can this wait hang forever on a lost wakeup in the allocator? > > This is an unbounded, uninterruptible wait whose only waker is the > wake_up() in ploop_allocator() after a preallocation completes. In > ploop_allocator(), prealloc_size is tested locklessly before the task state > is set: > > if (ploop->prealloc_size) { > ... > } > if (kthread_should_stop()) {...} > set_current_state(TASK_INTERRUPTIBLE); > schedule(); > > Consider this interleaving: > > allocator: reads prealloc_size == 0, not yet in set_current_state() > requester: ploop_req_prealloc() sets prealloc_size under bat_lock > requester: wake_up_process(ploop->kt_allocator->task) /* TASK_RUNNING */ > allocator: set_current_state(TASK_INTERRUPTIBLE); schedule(); > > The wakeup is a no-op and the allocator sleeps with prealloc_size != 0. > ploop_req_prealloc() returns early when the requested size is already > covered, so later IO would not re-kick it, and suspend has quiesced IO > anyway. ploop_no_pending_prealloc() then never becomes true. > > The race in the allocator predates this patch. Before it, a lost wakeup > only delayed preallocation until the next request. Now it can hang > ploop_postsuspend(). The new ploop_should_prealloc() call in > ploop_preresume() also adds a new place to trigger it. > > Could the allocator re-check prealloc_size after set_current_state(), or > could the wait be made bounded or killable? Fixed in a separate patch "dm-ploop: fix lost wakeup in ploop_allocator()". > [Severity: Medium] > Can ploop_postsuspend() block here indefinitely? > > If the allocator loses the wakeup described above, ploop_wait_prealloc() > never returns and dmsetup suspend hangs in D state. This is a new > dependency of the suspend path on the allocator making progress. > > The follow-up patch "dm-ploop: truncate unused tail of top delta on > suspend" does not touch ploop_allocator() or ploop_wait_prealloc(). It > makes ploop_postsuspend() call ploop_wait_prealloc() under > down_write(&ctl_rwsem), so in the final series state the hang would also > block every other ctl_rwsem user (message, status, ploop_llseek_hole()). > > Would it be possible to fix the allocator wakeup, or to avoid waiting while > holding ctl_rwsem for write? The lost wakeup in ploop_allocator() is fixed earlier in this series by "dm-ploop: fix lost wakeup in ploop_allocator()". Also this patch switches the allocator to wake_up() for dispatcher_wq_prealloc, since ploop_wait_prealloc() uses uninterruptible wait_event(). ploop_preallocate_cluster() always clears prealloc_size and prealloc_in_progress, including the error path, and the allocator never takes ctl_rwsem, so the wait is bounded by the fallocate itself. _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel