linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Damien Le Moal <Damien.LeMoal@wdc.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH v5 0/5] Initial support for multi-actuator HDDs
Date: Tue, 17 Aug 2021 04:06:16 +0000	[thread overview]
Message-ID: <DM6PR04MB7081F31C7933E6C50E10CBB3E7FE9@DM6PR04MB7081.namprd04.prod.outlook.com> (raw)
In-Reply-To: yq18s11qqfk.fsf@ca-mkp.ca.oracle.com

On 2021/08/17 2:10, Martin K. Petersen wrote:
> 
> Hi Damien!
> 
>> Single LUN multi-actuator hard-disks are cappable to seek and execute
>> multiple commands in parallel. This capability is exposed to the host
>> using the Concurrent Positioning Ranges VPD page (SCSI) and Log (ATA).
>> Each positioning range describes the contiguous set of LBAs that an
>> actuator serves.
> 
> I am not a big fan of the Concurrent Positioning Range terminology since
> it is very specific to the implementation of multi-actuator disk drives.
> With other types of media, "positioning" doesn't any sense. It is
> unfortunate that CPR is the term that ended up in a spec that covers a
> wide variety of devices and media types.
> 
> I also think that the "concurrent positioning" emphasizes the
> performance aspect but not so much the fault domain which in many ways
> is the more interesting part.
> 
> The purpose of exposing this information to the filesystems must be to
> encourage them to use it. And therefore I think it is important that the
> semantics and information conveyed is applicable outside of the
> multi-actuator use case. It would be easy to expose this kind of
> information for concatenated LVM devices, etc.
> 
> Anyway. I don't really have any objections to the series from an
> implementation perspective. I do think "cpr" as you used in patch #2 is
> a better name than "crange". But again, I wish we could come up with a
> more accurate and less disk actuator centric terminology for the block
> layer plumbing.
> 
> I would have voted for "fault_domain" but that ignores the performance
> aspect. "independent_block_range", maybe? Why is naming always so hard?
> :(

I did struggle with the naming too and crange was the best I could come up with
given the specs wording.

With the single LUN approach, the fault domain does not really change from a
regular device. The typical use in case of bad heads would be to replace the
drive or reformat it at lower capacity with head depop. That could be avoided
with dm-linear on top (one DM per actuator) though.

As for the independent_block_range idea, I thought of that too, but the problem
is that the tags are still shared between the 2 actuators, so the ranges are not
really independent at all. One can starve the other depending on the host
workload without FS and/or IO scheduler optimization distributing the commands
between the actuators.

The above point led me to this informational only implementation. Without
optimization, we get the same as today. No changes in performance and use.
Better IOPS is gain for lucky workloads (typically random ones). Going forward,
more reliable IOPS & throughput gains are possible with some additional changes.


-- 
Damien Le Moal
Western Digital Research

  reply	other threads:[~2021-08-17  4:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-12  7:50 [PATCH v5 0/5] Initial support for multi-actuator HDDs Damien Le Moal
2021-08-12  7:50 ` [PATCH v5 1/5] block: Add concurrent positioning ranges support Damien Le Moal
2021-08-12  7:50 ` [PATCH v5 2/5] scsi: sd: add " Damien Le Moal
2021-08-12  7:50 ` [PATCH v5 3/5] libata: support concurrent positioning ranges log Damien Le Moal
2021-08-12  7:50 ` [PATCH v5 4/5] doc: document sysfs queue/cranges attributes Damien Le Moal
2021-08-12  7:50 ` [PATCH v5 5/5] doc: Fix typo in request queue sysfs documentation Damien Le Moal
2021-08-12 17:10 ` [PATCH v5 0/5] Initial support for multi-actuator HDDs Jens Axboe
2021-08-12 17:21   ` Martin K. Petersen
2021-08-12 17:25     ` Jens Axboe
2021-08-13  0:30       ` Damien Le Moal
2021-08-16 17:12         ` Martin K. Petersen
2021-08-17  4:06           ` Damien Le Moal
2021-08-16 17:10 ` Martin K. Petersen
2021-08-17  4:06   ` Damien Le Moal [this message]
2021-08-18  2:24     ` Martin K. Petersen
2021-08-18  2:45       ` Damien Le Moal
2021-08-23  1:27 ` Damien Le Moal
2021-08-26  2:07 ` Damien Le Moal
2021-08-26  2:41   ` Martin K. Petersen
2021-08-26  3:09     ` Damien Le Moal
2021-08-26  3:43       ` Martin K. Petersen
2021-08-26  3:50         ` Damien Le Moal
2021-08-26  6:28           ` Hannes Reinecke
2021-08-27  3:03           ` Martin K. Petersen
2021-08-27  3:11             ` Damien Le Moal

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=DM6PR04MB7081F31C7933E6C50E10CBB3E7FE9@DM6PR04MB7081.namprd04.prod.outlook.com \
    --to=damien.lemoal@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --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 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).