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 8A27781377 for ; Mon, 9 Nov 2026 15:44:05 +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 6A9FgrAa000961; Mon, 9 Nov 2026 18:42:53 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A9FgrAa000961 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="qquZr7SG" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A9FginU000931 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 9 Nov 2026 18:42:44 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A9FginU000931 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-48df02b91f9so623758f8f.1 for ; Mon, 09 Nov 2026 07:42:44 -0800 (PST) X-Forwarded-Encrypted: i=2; AL+hErHb2PF4K5Hsjd3cFNATOeUqOetZEZ/I46GHZuPz7UlVSp8KHqbYaFrRur8BipRElrX4q0wFhQ==@openvz.org X-Gm-Message-State: APuU4Z8exmyQgpmeqpoYfa09t/fb15gRUY0jvbq7o6WdC4DEPurdoDgV tydAlpIyAqOl2AvuNkC/y6Lt5tVoEQD3QegBCVpScgytgPG+VOj3+T2Y/GC63dU9vFZf5jAORkP X/6ledGkHaNGPcPQqwVNBJOm3yQcunv/gCe9C6quuKZzrpQ9siMLsxA== X-Gm-Gg: AYBFou1GnHpLcg3s5f4zTcKTuKE99t6gLH4TYoUWDWQ35hWLtojpNzNzH0XuVmrWox5 CyjflL26LhB/dbNGx7Nv0leRqxU9ynRHbSDICqsLh1smYdLNhG6ItcIfS2Xf5H2EdqyPp15Hnhh eW/6Y3zSwZ9icAHKwddegsSrDF8dANtm9GPU1INQeGUf01Zvka6JtsG6ARI/G7dW1vJ8plShj74 HYkDnMnGc49sYrXiw58CXyHyls8yDxRAnhTJ3EvjieXIplzrOjkaUsIxluUD5k8xWfAr4BxcKHK QfkGJSxFGxfnjcxYbGCQtLALge+MidQ70i3Y5tuxE1Mo4i9lPwmAogf7EjKhWe6VNQDzWH4jMXK XOxMZpJd0Vk6ooRfDXg== X-Received: by 2002:a05:600c:e40b:b0:4ba:cd:f45a with SMTP id 5b1f17b1804b1-4ba00cdf4demr8346095e9.14.1794238964335; Mon, 09 Nov 2026 07:42:44 -0800 (PST) X-Received: by 2002:a05:600c:e40b:b0:4ba:cd:f45a with SMTP id 5b1f17b1804b1-4ba00cdf4demr8345785e9.14.1794238963867; Mon, 09 Nov 2026 07:42:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1794238963; cv=none; d=google.com; s=arc-20260327; b=DsLcQq+HnL6czjr11s2hlVHRv//a6Qkdlpl4lnzjLO6a59ldYs0HxHmTANldlZdDeh 93wbyCM72h565Wox5Hup9ztkVkZ3foUl7UvSWSHPbDr+nHP4wWdgBFNsmwlSQvsQlC1B vKry3kZ7OB3rCj5NFP9DuuKgwafTf4g6mMn/nq92h2aje77+Njs688erK6Vdm3DL9LB/ a40lvgLnPV5AqkaVRFhVSgD/U2HfFftRffWhEtTrSpN/embfREtXEq06Fwy4Bv1YtJeQ /ZOK3Jip/Njuvl4upx5/PAApdR9CMgwnCB+Il33qnZSM8nN16qoVtC93BDK3j7TNz4yU 4QUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=message-id:date:references:in-reply-to:cc:to:from:subject :content-transfer-encoding:mime-version:dkim-signature; bh=VkxurlCEWBsXqSWE95IdZaZjYpQgKgP7PyFojFOxlEA=; fh=AXaEMap9UVXDT/x707nN5u9hAuW2OOlHA2h2MmC//Kg=; b=TP6YTS9Ru+VYfeIuncACXKOi7EyGLEgtSbQJpqFdXgCQj13WoZAW25ON1Addt0KIPx EBFtuNcw9Q9NJfNNb/oYAw67NVGR1sEZ6c/0VFJBwQluZFpnLprBsTNue1EkIoOpSRMY q4zGxMGCvXBcVYS7d7mjUzeSDP9+ui37pM5F/I4JkrwI3wKNfrSsQp22evONxCSE/f6Z hlzl7vqsGmbNc8I2qcCbz2c8K/WjMa2dKngIJE3hQV8ZHO5rPDgeAm3ok8cakfi7FPVC pD0lRIyk1Bapqzu7Dh4YDH7bOKaRfHQ304Hb7lsDVBhlmnGWmZVroPp+SkTac0sS1koX B/kQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=qquZr7SG; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-4959340939asi10027036f8f.11.2026.11.09.07.42.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Nov 2026 07:42:43 -0800 (PST) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=qquZr7SG; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Date:From:Subject:Content-Type: MIME-Version; bh=VkxurlCEWBsXqSWE95IdZaZjYpQgKgP7PyFojFOxlEA=; b=qquZr7SGj1HK QiVoKKqgeR7Ci7vilZ20rpIklz3XpRGaO4ONcUMk/R1XcVfXSXKCELrWNbKG3slAI9+XsTeR2FbUn WCM6numAZzz84QJa4UGyH8TTbFqJvfqvldLt1fohRB9X4SxYpgeD4q/ESKrEtMXkGR4Ooe/C4x9Tp MK5ptHnpcjsii1bUNOCJ61HFSoKELPkJ98UXOVfUfGhenqW4qf4zRxTAwCY5khEOqWmzuTZyqHjq8 gcvp4zf91VTIWziKdRSZJ45z6kL9Xa20TG4I7tA9dg9GM1+AJ2OqMf2LQVmaE5GDN7WQHCXQL7x3b 4Oxr+vcIndLdwR/gDn07Ag==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xQRS3-007qJT-0M; Mon, 09 Nov 2026 16:42:35 +0100 MIME-Version: 1.0 From: Konstantin Khorenko To: Alexander Ivanov In-Reply-To: <20261109140143.1408038-9-alexander.ivanov@virtuozzo.com> References: <20261109140143.1408038-1-alexander.ivanov@virtuozzo.com> <20261109140143.1408038-9-alexander.ivanov@virtuozzo.com> Date: Mon, 09 Nov 2026 16:42:38 +0100 Message-Id: <179423895898.3398823.16047552713436808512.b4-review@b4> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1987; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=v5y12XaS+3XLo5bQ6Jmh1vcbrxkzsRhF2cwb3eCdue4=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBq8enxC6VNOnAdAvNh4Oejk1MSKfla6NmNh0hXy jmpz+eDujKJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCavHp8QAKCRBRlgpH+WFc KtGqD/9KHR6e9Td558v6qLpaoq/3d1aDuOOEH21442PUoQr2MJMODrXkoQS5hUpRCzU/zoje8kL qZYiLBn0J1Of5BrZ4FseSOrSqAdV3QdJYl85nNiWC2sNzhIdZ8pY6JsI+oOvBJNQNiar3KpCeZm lL/LniNhx/LYs3slGoUqdmcuFguFttnK1TjV+RN5jZDrcFS4BdWCSiq1SLIkud5lPrv9FoZHyw+ 7e+7eu91jCqY5KR26SGzhSiSFE5TzgT0Nl8HiS7Dkra2UlAb3f9HQUS3EgqRkT25Qf8Z1cLIYuv Y5CP5IbZDk8schYNVxpsbhYMWZy0Wdd9+9NlKE8lFlMPtRdcyCO9kzU43uo6JI500Wb+mPIQCCG 1Ke/S6tmCZaD1RwhAnJbMhw2xWWoJLqx8m8ZFQfg0JDBp0odKrsgS+fXexdh0LmFyvW+FcUp6Dv 6S+uRR5fTxlRoncBFxH4kFzwA7xheD/t1BPwEK9r7OoL253JuPYYOKajPthxsTPbsY+rNTKkXD3 7NLcD2/byYGE49PzoIk6evh99TB2tKFDpul4jUo1o4+7NPlElzwP+dmgUftf9Fl53tc03Gl+2Ki ESThPPd1SD/A4/TPIu8guG8CYIW9tSErT1RUNT/u+Xd76/0fIkgoH4dtCx08oKsFSQTteEd9IVj vwJxjjsojNVtXlw== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v11 08/10] dm-qcow2: leak clusters allocated for a failed L1/L2 writeback 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-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org I won't apply this version, please send v12 with the changes below. On 11/9/26 15:01, Alexander Ivanov wrote: > spin_unlock_irqrestore(&qcow2->md_pages_lock, flags); > > + list_for_each_entry(qio, &end_list, link) > + qio->ext->cleanup_mask &= ~FREE_ALLOCATED_CLU; > qcow2_dispatch_qios(qcow2, NULL, &wait_list); Item 1 of the cover letter reply: queue the L1-allocation qio on l1.md->wbd->dependent_list instead of l1.md->wait_list. Why: that qio does not reach end_list. It waits on l1.md->wait_list, and on a failed L1 writeback clear_writeback_status() sends it back to work. The reverted L1 entry is 0 again, so it allocates another L2-table cluster, and the L1 page is written again in the same worker pass. Nothing slows this down: with a persistent L1 write error every round leaks one more cluster and grows the file. Before this patch the same loop freed the cluster and reused it. On success a dependent qio goes back to work the same way as a waiter, so moving it costs nothing there. Today only the qios added in process_indexes_write() sit on dependent_list, and they all have ext. A plain write that allocates an L2 table may have none, so check qio->ext in the new loop. > Keep the refcount of these clusters instead. If L1/L2 on disk points to > such a cluster, the image stays consistent; otherwise the cluster is > leaked, which check repairs by freeing it. So the image needs no check > and resume needs no refusal. Item 2 of the cover letter reply: say what is leaked, one cluster per failed L1/L2 write of a request. Why: your v10 answer bounded the leak by "refcounts reach the disk before L1/L2". In this driver it is the other way round: R1/R2 pages wait on slow_wb_batch_list for the timer (see the comment above mark_cluster_used()), while L1/L2 pages are written in the same worker pass. And an L1 update has no data write that could fail first. -- Konstantin Khorenko, Virtuozzo Linux Kernel Team _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel