linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Damien Le Moal <dlemoal@kernel.org>
To: dgilbert@interlog.com, Niklas Cassel <nks@flawful.org>,
	Jens Axboe <axboe@kernel.dk>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Paolo Valente <paolo.valente@linaro.org>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>
Cc: Bart Van Assche <bvanassche@acm.org>,
	Christoph Hellwig <hch@lst.de>, Hannes Reinecke <hare@suse.de>,
	linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-block@vger.kernel.org,
	Niklas Cassel <niklas.cassel@wdc.com>
Subject: Re: [PATCH v7 00/19] Add Command Duration Limits support
Date: Thu, 11 May 2023 21:34:05 +0900	[thread overview]
Message-ID: <54c1ccf6-2b27-2bc0-f142-995cd8aecf21@kernel.org> (raw)
In-Reply-To: <b8bd194d-7140-b924-059f-e67636d029a5@interlog.com>

On 2023/05/11 13:22, Douglas Gilbert wrote:
> On 2023-05-10 21:13, Niklas Cassel wrote:
>> From: Niklas Cassel <niklas.cassel@wdc.com>
>>
>> Hello,
>>
>> This series adds support for Command Duration Limits.
>> The series is based on linux tag: v6.4-rc1
>> The series can also be found in git:
>> https://github.com/floatious/linux/commits/cdl-v7
>>
>>
>> =================
>> CDL in ATA / SCSI
>> =================
>> Command Duration Limits is defined in:
>> T13 ATA Command Set - 5 (ACS-5) and
>> T10 SCSI Primary Commands - 6 (SPC-6) respectively
>> (a simpler version of CDL is defined in T10 SPC-5).
>>
>> CDL defines Duration Limits Descriptors (DLD).
>> 7 DLDs for read commands and 7 DLDs for write commands.
>> Simply put, a DLD contains a limit and a policy.
>>
>> A command can specify that a certain limit should be applied by setting
>> the DLD index field (3 bits, so 0-7) in the command itself.
>>
>> The DLD index points to one of the 7 DLDs.
>> DLD index 0 means no descriptor, so no limit.
>> DLD index 1-7 means DLD 1-7.
>>
>> A DLD can have a few different policies, but the two major ones are:
>> -Policy 0xF (abort), command will be completed with command aborted error
>> (ATA) or status CHECK CONDITION (SCSI), with sense data indicating that
>> the command timed out.
>> -Policy 0xD (complete-unavailable), command will be completed without
>> error (ATA) or status GOOD (SCSI), with sense data indicating that the
>> command timed out. Note that the command will not have transferred any
>> data to/from the device when the command timed out, even though the
>> command returned success.
>>
>> Regardless of the CDL policy, in case of a CDL timeout, the I/O will
>> result in a -ETIME error to user-space.
>>
>> The DLDs are defined in the CDL log page(s) and are readable and writable.
> 
> The above sentence may be correct for ATA disks, but for SCSI disks the CDL log
> page is for statistics. Those statistics counters can be reset (to zero) but
> are not writable in the normal sense. To "define" (or change from the default
> values) CDL settings in SCSI, the CDL _mode_ pages are provided. Confusingly

Yes, indeed, for SCSI, CDL descriptors are defined in mode pages.

> there are four such mode pages (A, B, T2A and T2B). Which one(s) do you
> support/use?

All of them (see patch 8). For the ATA devices, the mode sense translation can
only report support for T2A/T2B (see patch 17).

Note that the kernel does not handle directly the CDL descriptor mode pages.
These need to be set by the user using passthrough tools such as sg3utils or
cdl-tools.

-- 
Damien Le Moal
Western Digital Research


  reply	other threads:[~2023-05-11 12:34 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-11  1:13 [PATCH v7 00/19] Add Command Duration Limits support Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 01/19] ioprio: cleanup interface definition Niklas Cassel
2023-06-07 13:10   ` [PATCH v7 1/19] " Alexander Gordeev
2023-06-07 14:52     ` Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 02/19] block: introduce ioprio hints Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 03/19] block: introduce BLK_STS_DURATION_LIMIT Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 04/19] scsi: core: allow libata to complete successful commands via EH Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 05/19] scsi: rename and move get_scsi_ml_byte() Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 06/19] scsi: support retrieving sub-pages of mode pages Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 07/19] scsi: support service action in scsi_report_opcode() Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 08/19] scsi: detect support for command duration limits Niklas Cassel
2025-04-30 12:13   ` Friedrich Weber
2025-04-30 13:39     ` Damien Le Moal
2025-05-08  9:36       ` Mira Limbeck
2025-05-08 23:45         ` Damien Le Moal
2025-06-03 11:28           ` Friedrich Weber
2025-06-09 12:24             ` Damien Le Moal
2025-07-10  8:41               ` Friedrich Weber
2025-07-10 10:32                 ` Damien Le Moal
2025-07-30 10:39                   ` Friedrich Weber
2025-07-14  2:48                 ` Damien Le Moal
2025-07-22  9:32                   ` Friedrich Weber
2025-07-22  9:37                     ` Damien Le Moal
2025-07-31 11:48                       ` Diangang Li
2025-07-31 12:06                         ` Friedrich Weber
2025-07-31 23:21                         ` Damien Le Moal
2025-07-31 11:38     ` Diangang Li
2025-07-31 11:44       ` Friedrich Weber
2023-05-11  1:13 ` [PATCH v7 09/19] scsi: allow enabling and disabling " Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 10/19] scsi: sd: set read/write commands CDL index Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 11/19] scsi: sd: handle read/write CDL timeout failures Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 12/19] ata: libata-scsi: remove unnecessary !cmd checks Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 13/19] ata: libata: change ata_eh_request_sense() to not set CHECK_CONDITION Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 14/19] ata: libata: detect support for command duration limits Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 15/19] ata: libata-scsi: handle CDL bits in ata_scsiop_maint_in() Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 16/19] ata: libata-scsi: add support for CDL pages mode sense Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 17/19] ata: libata: add ATA feature control sub-page translation Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 18/19] ata: libata: set read/write commands CDL index Niklas Cassel
2023-05-11  1:13 ` [PATCH v7 19/19] ata: libata: handle completion of CDL commands using policy 0xD Niklas Cassel
2023-05-11  4:22 ` [PATCH v7 00/19] Add Command Duration Limits support Douglas Gilbert
2023-05-11 12:34   ` Damien Le Moal [this message]
2023-05-15 22:58 ` Damien Le Moal
2023-05-22 21:41 ` Martin K. Petersen
2023-05-22 23:12   ` Damien Le Moal
2023-05-23  9:56   ` Niklas Cassel
2023-05-23 10:08     ` Damien Le Moal
2023-05-23 10:35       ` Niklas Cassel
2023-05-23 10:53         ` Damien Le Moal
2023-06-01  0:43 ` Martin K. Petersen

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=54c1ccf6-2b27-2bc0-f142-995cd8aecf21@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=dgilbert@interlog.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jejb@linux.ibm.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=niklas.cassel@wdc.com \
    --cc=nks@flawful.org \
    --cc=paolo.valente@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).