From: Hannes Reinecke <[email protected]>
To: Sagi Grimberg <[email protected]>, Christoph Hellwig <[email protected]>
Cc: Kanchan Joshi <[email protected]>,
[email protected], [email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected]
Subject: Re: [PATCH for-next 4/4] nvme-multipath: add multipathing for uring-passthrough commands
Date: Wed, 13 Jul 2022 13:49:58 +0200 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
On 7/13/22 13:00, Sagi Grimberg wrote:
>
>>> Maybe the solution is to just not expose a /dev/ng for the mpath device
>>> node, but only for bottom namespaces. Then it would be completely
>>> equivalent to scsi-generic devices.
>>>
>>> It just creates an unexpected mix of semantics of best-effort
>>> multipathing with just path selection, but no requeue/failover...
>>
>> Which is exactly the same semanics as SG_IO on the dm-mpath nodes.
>
> I view uring passthru somewhat as a different thing than sending SG_IO
> ioctls to dm-mpath. But it can be argued otherwise.
>
> BTW, the only consumer of it that I'm aware of commented that he
> expects dm-mpath to retry SG_IO when dm-mpath retry for SG_IO submission
> was attempted (https://www.spinics.net/lists/dm-devel/msg46924.html).
>
> From Paolo:
> "The problem is that userspace does not have a way to direct the command
> to a different path in the resubmission. It may not even have permission
> to issue DM_TABLE_STATUS, or to access the /dev nodes for the underlying
> paths, so without Martin's patches SG_IO on dm-mpath is basically
> unreliable by design."
>
> I didn't manage to track down any followup after that email though...
>
I did; 'twas me who was involved in the initial customer issue leading
up to that.
Amongst all the other issue we've found the prime problem with SG_IO is
that it needs to be directed to the 'active' path.
For the device-mapper has a distinct callout (dm_prepare_ioctl), which
essentially returns the current active path device. And then the
device-mapper core issues the command on that active path.
All nice and good, _unless_ that command triggers an error.
Normally it'd be intercepted by the dm-multipath end_io handler, and
would set the path to offline.
But as ioctls do not use the normal I/O path the end_io handler is never
called, and further SG_IO calls are happily routed down the failed path.
And the customer had to use SG_IO (or, in qemu-speak, LUN passthrough)
as his application/filesystem makes heavy use of persistent reservations.
So yeah, nvme-multipathing should be okay here, as io_uring and normal
I/O are using the same code paths, hence the above scenario really won't
occur.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
[email protected] +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer
next prev parent reply other threads:[~2022-07-13 11:50 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220711110753epcas5p4169b9e288d15ca35740dbb66a6f6983a@epcas5p4.samsung.com>
2022-07-11 11:01 ` [PATCH for-next 0/4] nvme-multipathing for uring-passthrough Kanchan Joshi
[not found] ` <CGME20220711110800epcas5p3d338dd486fd778c5ba5bfe93a91ec8bd@epcas5p3.samsung.com>
2022-07-11 11:01 ` [PATCH for-next 1/4] io_uring, nvme: rename a function Kanchan Joshi
2022-07-14 13:55 ` Ming Lei
[not found] ` <CGME20220711110812epcas5p33aa90b23aa62fb11722aa8195754becf@epcas5p3.samsung.com>
2022-07-11 11:01 ` [PATCH for-next 2/4] nvme: compact nvme_uring_cmd_pdu struct Kanchan Joshi
2022-07-12 6:32 ` Christoph Hellwig
[not found] ` <CGME20220711110824epcas5p22c8e945cb8c3c3ac46c8c2b5ab55db9b@epcas5p2.samsung.com>
2022-07-11 11:01 ` [PATCH for-next 3/4] io_uring: grow a field in struct io_uring_cmd Kanchan Joshi
2022-07-11 17:00 ` Sagi Grimberg
2022-07-11 17:19 ` Jens Axboe
2022-07-11 17:18 ` Jens Axboe
2022-07-11 17:55 ` Sagi Grimberg
2022-07-11 18:22 ` Sagi Grimberg
2022-07-11 18:24 ` Jens Axboe
2022-07-11 18:58 ` Sagi Grimberg
2022-07-12 11:40 ` Kanchan Joshi
2022-07-14 3:40 ` Ming Lei
2022-07-14 8:19 ` Kanchan Joshi
2022-07-14 15:30 ` Daniel Wagner
2022-07-15 11:07 ` Kanchan Joshi
2022-07-18 9:03 ` Daniel Wagner
[not found] ` <CGME20220711110827epcas5p3fd81f142f55ca3048abc38a9ef0d0089@epcas5p3.samsung.com>
2022-07-11 11:01 ` [PATCH for-next 4/4] nvme-multipath: add multipathing for uring-passthrough commands Kanchan Joshi
2022-07-11 13:51 ` Sagi Grimberg
2022-07-11 15:12 ` Stefan Metzmacher
2022-07-11 16:58 ` Sagi Grimberg
2022-07-11 18:54 ` Kanchan Joshi
2022-07-11 18:37 ` Kanchan Joshi
2022-07-11 19:56 ` Sagi Grimberg
2022-07-12 4:23 ` Kanchan Joshi
2022-07-12 21:26 ` Sagi Grimberg
2022-07-13 5:37 ` Kanchan Joshi
2022-07-13 9:03 ` Sagi Grimberg
2022-07-13 11:28 ` Kanchan Joshi
2022-07-13 12:17 ` Sagi Grimberg
2022-07-14 15:14 ` Ming Lei
2022-07-14 23:05 ` Kanchan Joshi
2022-07-15 1:35 ` Ming Lei
2022-07-15 1:46 ` Ming Lei
2022-07-15 4:24 ` Kanchan Joshi
2022-07-12 6:52 ` Christoph Hellwig
2022-07-12 11:33 ` Kanchan Joshi
2022-07-12 20:13 ` Sagi Grimberg
2022-07-13 5:36 ` Christoph Hellwig
2022-07-13 8:04 ` Sagi Grimberg
2022-07-13 10:12 ` Christoph Hellwig
2022-07-13 11:00 ` Sagi Grimberg
2022-07-13 11:28 ` Christoph Hellwig
2022-07-13 12:16 ` Sagi Grimberg
2022-07-13 11:49 ` Hannes Reinecke [this message]
2022-07-13 12:43 ` Sagi Grimberg
2022-07-13 13:30 ` Hannes Reinecke
2022-07-13 13:41 ` Sagi Grimberg
2022-07-13 14:07 ` Hannes Reinecke
2022-07-13 15:59 ` Sagi Grimberg
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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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