From: Douglas Gilbert <dgilbert@interlog.com>
To: Sagi Grimberg <sagi@grimberg.me>, Keith Busch <kbusch@kernel.org>,
Hannes Reinecke <hare@suse.de>
Cc: "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
lsf-pc@lists.linuxfoundation.org
Subject: Re: [LSF/MM/BPF BOF] Userspace command abouts
Date: Tue, 21 Feb 2023 11:25:53 -0500 [thread overview]
Message-ID: <57d8dff9-2fdb-8198-6cdc-7265797a704a@interlog.com> (raw)
In-Reply-To: <ad837a26-948a-c690-cd9e-4dfffb5f990d@grimberg.me>
On 2023-02-20 06:24, Sagi Grimberg wrote:
>
>>> Hi all,
>>>
>>> it has come up in other threads, so it might be worthwhile to have its own
>>> topic:
>>>
>>> Userspace command aborts
>>>
>>> As it stands we cannot abort I/O commands from userspace.
>>> This is hitting us when running in a virtual machine:
>>> The VM sets a timeout when submitting a command, but that
>>> information can't be transmitted to the VM host. The VM host
>>> then issues a different command (with another timeout), and
>>> again that timeout can't be transmitted to the attached devices.
>>> So when the VM detects a timeout, it will try to issue an abort,
>>> but that goes nowhere as the VM host has no way to abort commands
>>> from userspace.
>>> So in the end the VM has to wait for the command to complete, causing
>>> stalls in the VM if the host had to undergo error recovery or something.
>>
>> Aborts are racy. A lot of hardware implements these as a no-op, too.
>
> Indeed.
>
>>> With io_uring or CDL we now have some mechanism which look as if they
>>> would allow us to implement command aborts.
>>
>> CDL on the other hand sounds more promising.
>>
>>> So this BoF will be around discussions on how aborts from userspace could be
>>> implemented, whether any of the above methods are suitable, or whether there
>>> are other ideas on how that could be done.
>
> I did not understand what is the relationship between aborts and CDL.
> Sounds to me that this would tie in to something like Time Limited Error
> Recovery (TLER) and LR bit set based on ioprio?
>
> I am unclear where do aborts come into play here.
CDL: Command Duration Limits
One use case is reading from storage for audio visual output.
An application only wants to wait so long (e.g. one or two frames
on the video output) before it wants to forget about the current
read (i.e. "abort" it) and move onto the next read. An alert viewer
might notice a momentary freeze frame.
The SCSI CDL mechanism uses the DL0, DL1 and DL2 bits in the READ(16,32)
commands. CDL also depends on the CDLP and RWCDLP fields in the
REPORT SUPPORTED OPERATION CODES command and one of the CDL
mode pages. So there may be some additional "wiring" needed in the
SCSI subsystem.
next prev parent reply other threads:[~2023-02-21 16:26 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-16 11:50 [LSF/MM/BPF BOF] Userspace command abouts Hannes Reinecke
2023-02-16 16:40 ` Keith Busch
2023-02-17 18:53 ` Chaitanya Kulkarni
2023-02-18 9:50 ` [LSF/MM/BPF BOF] Userspace command aborts Hannes Reinecke
2023-02-21 18:15 ` Chaitanya Kulkarni
2023-02-20 11:24 ` [LSF/MM/BPF BOF] Userspace command abouts Sagi Grimberg
2023-02-21 16:25 ` Douglas Gilbert [this message]
2023-02-22 14:37 ` Sagi Grimberg
2023-02-22 14:53 ` Keith Busch
2023-02-23 15:35 ` Sagi Grimberg
2023-02-24 23:54 ` Chaitanya Kulkarni
2023-02-25 1:51 ` Keith Busch
2023-02-25 4:15 ` Damien Le Moal
2023-02-25 16:14 ` James Smart
2023-02-27 16:33 ` Sagi Grimberg
2023-02-27 17:28 ` Hannes Reinecke
2023-02-27 17:44 ` Keith Busch
2023-02-27 21:18 ` Damien Le Moal
2023-02-27 21:42 ` Damien Le Moal
2023-02-28 8:05 ` Sagi Grimberg
2023-02-27 21:17 ` Damien Le Moal
2023-02-27 8:20 ` Hannes Reinecke
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=57d8dff9-2fdb-8198-6cdc-7265797a704a@interlog.com \
--to=dgilbert@interlog.com \
--cc=hare@suse.de \
--cc=kbusch@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lsf-pc@lists.linuxfoundation.org \
--cc=sagi@grimberg.me \
/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