From: Niklas Cassel <cassel@kernel.org>
To: Damien Le Moal <dlemoal@kernel.org>
Cc: Tommy Kelly <linux@tkel.ly>, John Garry <john.g.garry@oracle.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
linux-ide@vger.kernel.org
Subject: Re: [PATCH v3 0/2] ata: fix deferred QC handling for port multipliers
Date: Tue, 12 May 2026 12:37:47 +0200 [thread overview]
Message-ID: <agMC-0JrfMxsarzC@ryzen> (raw)
In-Reply-To: <9a0b2636-1411-4ce1-bd7c-6fc265a1901f@kernel.org>
On Tue, May 12, 2026 at 10:58:04AM +0900, Damien Le Moal wrote:
> On 5/9/26 04:50, Niklas Cassel wrote:
> > Hello all,
> >
> > Tommy Kelly reported a regression with PMP that use CBS:
> > https://lore.kernel.org/linux-ide/ce09cc21-a8e9-4845-b205-35411e22fba9@tkel.ly/
> >
> > It turns out that the ap->excl_link logic used for PMP that use CBS is
> > incompatible with the deferred qc issuing via a workqueue.
> > This is fixed in patch 1/2.
> >
> > While looking at the code, it turns out that the deferred qc issuing via
> > workqueue is misdesigned. It assumed that we can't mix NCQ and non-NCQ
> > commands on the same port. The limitation is that you can not mix NCQ and
> > non-NCQ commands on the same drive. However, with a PMP with FBS, you can
> > issue (mixed NCQ and non-NCQ commands) to the different drives. Thus, move
> > the saved deferred QC from struct ata_port to struct ata_link. This is
> > fixed in patch 2/2.
> >
> >
>
> What are the changes from v2 ?
There are the changes since v2, I simply forgot to change v1 to v2.
>
> > Changes since v1:
> > -Avoid a local variable in sata_pmp_qc_defer_cmd_switch(), call
> > ata_std_qc_defer(qc) inside the switch() directly instead.
> > -Fix a typo, such that the the code actually compiles... Sorry for that.
> >
> >
> > Niklas Cassel (2):
> > ata: libata-scsi: do not use the deferred QC feature on PMPs with CBS
> > ata: libata-scsi: do not needlessly defer commands when using PMP with
> > FBS
> >
> > drivers/ata/libata-core.c | 16 ++++---
> > drivers/ata/libata-eh.c | 8 ++--
> > drivers/ata/libata-pmp.c | 26 +++++++++--
> > drivers/ata/libata-scsi.c | 95 ++++++++++++++++++++++++---------------
> > include/linux/libata.h | 8 ++--
> > 5 files changed, 101 insertions(+), 52 deletions(-)
> >
>
>
> --
> Damien Le Moal
> Western Digital Research
prev parent reply other threads:[~2026-05-12 10:37 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-08 19:50 [PATCH v3 0/2] ata: fix deferred QC handling for port multipliers Niklas Cassel
2026-05-08 19:50 ` [PATCH v3 1/2] ata: libata-scsi: do not use the deferred QC feature on PMPs with CBS Niklas Cassel
2026-05-08 19:50 ` [PATCH v3 2/2] ata: libata-scsi: do not needlessly defer commands when using PMP with FBS Niklas Cassel
2026-05-12 2:01 ` Damien Le Moal
2026-05-12 2:41 ` Tommy Kelly
2026-05-12 7:42 ` Damien Le Moal
2026-05-12 0:25 ` [PATCH v3 0/2] ata: fix deferred QC handling for port multipliers Tommy Kelly
2026-05-12 1:58 ` Damien Le Moal
2026-05-12 10:37 ` Niklas Cassel [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=agMC-0JrfMxsarzC@ryzen \
--to=cassel@kernel.org \
--cc=dlemoal@kernel.org \
--cc=john.g.garry@oracle.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux@tkel.ly \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.