Cover Letter Detail
Show a cover letter.
GET /api/1.0/covers/2175399/?format=api
{ "id": 2175399, "url": "http://patchwork.ozlabs.org/api/1.0/covers/2175399/?format=api", "project": { "id": 13, "url": "http://patchwork.ozlabs.org/api/1.0/projects/13/?format=api", "name": "Linux IDE development", "link_name": "linux-ide", "list_id": "linux-ide.vger.kernel.org", "list_email": "linux-ide@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20251217231712.490765-1-dlemoal@kernel.org>", "date": "2025-12-17T23:17:10", "name": "[0/2] Prevent non-NCQ command starvation", "submitter": { "id": 86188, "url": "http://patchwork.ozlabs.org/api/1.0/people/86188/?format=api", "name": "Damien Le Moal", "email": "dlemoal@kernel.org" }, "series": [ { "id": 485778, "url": "http://patchwork.ozlabs.org/api/1.0/series/485778/?format=api", "date": "2025-12-17T23:17:10", "name": "Prevent non-NCQ command starvation", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/485778/mbox/" } ], "headers": { "Return-Path": "\n <linux-ide+bounces-4797-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-ide@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=B2qjCmn0;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ide+bounces-4797-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"B2qjCmn0\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWqYz47Shz1xpw\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 10:21:43 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 91A83302BAB0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 23:21:41 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1AC55330319;\n\tWed, 17 Dec 2025 23:21:41 +0000 (UTC)", "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id CB1252253FF\n\tfor <linux-ide@vger.kernel.org>; Wed, 17 Dec 2025 23:21:40 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPSA id E28E3C4CEF5;\n\tWed, 17 Dec 2025 23:21:39 +0000 (UTC)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1766013700; cv=none;\n b=ACmTgeyRgZQrjFDy/inRcH5/C2ou8W+R5XYAcFBd4SnDBwglbCvrvm6g2GdQKMDkFuDEoD/SfHs2B2PTIDJRpDJsCBqXpNR5UHp+kIfomao7r7nQjMCeuWdTCJUBBTdWukRiVxj6mU6aU9zJIPLZesS32KT5f8d4ol31dehvHRk=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1766013700; c=relaxed/simple;\n\tbh=VShaO1r5jqQMKFIsBIp0/nv19vUvwe3VD2v6waRmvXE=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=raXfQbC2i6MtkteNUvOdw46fc5FrTKO6J4znkuykMeWXC6JdPIFZms3GoW9tXexXiSe9zYNWfofLoCX/Mex5Zu+AyAiFhUmF6aB+GD6Vta5CWD7yhii9/Wp8R+dPZgHKHqqsJGgIteuek4XdQDsrCeKA/Gs4Bse8UVOozINptsY=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=B2qjCmn0; arc=none smtp.client-ip=10.30.226.201", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1766013700;\n\tbh=VShaO1r5jqQMKFIsBIp0/nv19vUvwe3VD2v6waRmvXE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=B2qjCmn04Um9x4i3iC0ndOL6tCzsDlHJAfAyS35gYGt+Apsi482KGu23BV+veppJ/\n\t Y22jLyxwYjVcVkv+K2RJA41u10eyC9E1Przee1y/G4QMEfuvfCn0/EaL2igk44JB1E\n\t sk2VgP3LsIVkFcVttmF3saIjXOw0hTI1EcgR36aIroeZffGy7pZosVU3LIlViOMaSO\n\t 5X2+AA1b6ZAsUNXSsaCcnpG7sxscbFPgVoPgM3FyHBMfO7vW8uXIn5ctlRsZZ8yojB\n\t ugzWPpw/X7RECgFmDQFhTxdremef32Elvv3DinwDVYACXft3MeqsBUg1A/M88KBVt8\n\t z1Jv+m3rWwBIA==", "From": "Damien Le Moal <dlemoal@kernel.org>", "To": "linux-ide@vger.kernel.org,\n\tNiklas Cassel <cassel@kernel.org>", "Cc": "Igor Pylypiv <ipylypiv@google.com>,\n\tXingui Yang <yangxingui@huawei.com>", "Subject": "[PATCH 0/2] Prevent non-NCQ command starvation", "Date": "Thu, 18 Dec 2025 08:17:10 +0900", "Message-ID": "<20251217231712.490765-1-dlemoal@kernel.org>", "X-Mailer": "git-send-email 2.52.0", "Precedence": "bulk", "X-Mailing-List": "linux-ide@vger.kernel.org", "List-Id": "<linux-ide.vger.kernel.org>", "List-Subscribe": "<mailto:linux-ide+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-ide+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit" }, "content": "This small patch series addresses potential command starvation issues\nwith non-NCQ passthrough commands issued to a device accessed through\na multi-queue libsas HBA. In such setup, a non-NCQ passthrough command\nissued by an application may suffer long delays and even complete\nstarvation if the device is under constant NCQ read/write workload.\n\nThis issue is avoided by limiting the requeing through the block layer\nand instead explicitly waiting for the device command queue to drain\nbefore issuing the non-NCQ command. This is done reliably by not trying\nto second guess ata EH in case of error or device reset, by always\nrequeuing a deferred command whenever EH is scheduled for the device\nport.\n\nWhen a non-ncq command is deferred waiting for the device queue to\ndrain, all new incoming commands are always requeued through the regular\nbusy mechanism, thus avoiding the need to manage an internal command\nqueue.\n\nWith this, the long latencies observed when executing non-NCQ\npassthrough commands under a heavy NCQ read/write workload at high queue\ndepth is resolved: the non-NCQ command latency only depends on how long\nit takes for all in-flight commands to complete.\n\nDamien Le Moal (2):\n ata: libata-scsi: refactor ata_scsi_translate()\n ata: libata-scsi: avoid passthrough command starvation\n\n drivers/ata/libata-core.c | 1 +\n drivers/ata/libata-eh.c | 6 ++\n drivers/ata/libata-scsi.c | 155 ++++++++++++++++++++++++++++++++------\n drivers/ata/libata.h | 2 +\n include/linux/libata.h | 3 +\n 5 files changed, 142 insertions(+), 25 deletions(-)" }