All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ming Lei <ming.lei@redhat.com>
To: Yoav Cohen <yoav@nvidia.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	Uday Shankar <ushankar@purestorage.com>,
	Caleb Sander Mateos <csander@purestorage.com>
Subject: Re: [PATCH 2/3] ublk: add feature UBLK_F_QUIESCE
Date: Mon, 23 Jun 2025 10:13:33 +0800	[thread overview]
Message-ID: <aFi4TYy2q5BoaoPl@fedora> (raw)
In-Reply-To: <DM4PR12MB63285592EDAA9C03DB1D6BFCA974A@DM4PR12MB6328.namprd12.prod.outlook.com>

On Thu, Jun 12, 2025 at 12:04:39PM +0000, Yoav Cohen wrote:
> 
> Hi Ming,
> 
> So I know it's a radical situation but my only concern is that:
> 
> 0) On our application timeout of IO may be set to few minutes as it is goes over the network.
> 1) Let's assume we have 1 queue with QD=1.
> 2) the Only IO is in the userspace application but as we send the IOs over the network it may be stuck due to connectivy issues.
> 3) User trying to upgrade/stop the application so we issue Quiesce_DEV with infinite timeout as we want to ensure it works.
> 4) We are stuck now until network connection will recover or Our datapath will somehow Issue the COMMIT_AND_FETCH back to to the kernel so it we can get the ABORT later and QUICESE_DEV can finish.
> 
> Problem is that I don't want to wait for this IO until recovery but on the other end I don't want to complete the IO with error to the user.
> So on this case I guess we can abort the application or something but maybe it will be cleaner that on Quiesce_DEV will need to issue another SQE per queue or something so we can notify the application this way about it.
> 
> Anyway also on our case it will be super rare to happen where there is a queue without an idle operation + network is currently down but we try to be complete as possible.
> What do you think?

Hi Yoav,

The multishot approach for fetching io command should address the issue
wrt. single queue depth case:

https://github.com/ming1/linux/commits/ublk2-cmd-batch.v3/

In which there is always one multishot FETCH_IO_CMDS for notifying ublk
server for new io commands(requests) in batch way.


Thanks, 
Ming


  reply	other threads:[~2025-06-23  2:13 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-22 16:35 [PATCH 0/3] ublk: add UBLK_F_QUIESCE Ming Lei
2025-05-22 16:35 ` [PATCH 1/3] selftests: ublk: add test case for UBLK_U_CMD_UPDATE_SIZE Ming Lei
2025-05-22 16:35 ` [PATCH 2/3] ublk: add feature UBLK_F_QUIESCE Ming Lei
2025-06-05 12:37   ` Yoav Cohen
2025-06-06  9:54     ` Ming Lei
2025-06-08 10:20       ` Yoav Cohen
2025-06-08 14:34         ` Ming Lei
2025-06-12  8:17           ` Yoav Cohen
2025-06-12  9:15             ` Ming Lei
2025-06-12 12:04               ` Yoav Cohen
2025-06-23  2:13                 ` Ming Lei [this message]
2025-05-22 16:35 ` [PATCH 3/3] selftests: ublk: add test for UBLK_F_QUIESCE Ming Lei
2025-05-23 15:42 ` [PATCH 0/3] ublk: add UBLK_F_QUIESCE Jens Axboe

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=aFi4TYy2q5BoaoPl@fedora \
    --to=ming.lei@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=csander@purestorage.com \
    --cc=linux-block@vger.kernel.org \
    --cc=ushankar@purestorage.com \
    --cc=yoav@nvidia.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.