[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Yy27b9CmdmNroIA5@T590>
Date: Fri, 23 Sep 2022 21:58:07 +0800
From: Ming Lei <ming.lei@...hat.com>
To: ZiyangZhang <ZiyangZhang@...ux.alibaba.com>
Cc: axboe@...nel.dk, xiaoguang.wang@...ux.alibaba.com,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
joseph.qi@...ux.alibaba.com
Subject: Re: [RESEND PATCH V5 7/7] Documentation: document ublk user recovery
feature
On Fri, Sep 23, 2022 at 02:15:05PM +0800, ZiyangZhang wrote:
> Add documentation for user recovery feature of ublk subsystem.
>
> Signed-off-by: ZiyangZhang <ZiyangZhang@...ux.alibaba.com>
> ---
> Documentation/block/ublk.rst | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/Documentation/block/ublk.rst b/Documentation/block/ublk.rst
> index 2122d1a4a541..c3dde087e601 100644
> --- a/Documentation/block/ublk.rst
> +++ b/Documentation/block/ublk.rst
> @@ -144,6 +144,38 @@ managing and controlling ublk devices with help of several control commands:
> For retrieving device info via ``ublksrv_ctrl_dev_info``. It is the server's
> responsibility to save IO target specific info in userspace.
>
> +- ``UBLK_CMD_START_USER_RECOVERY``
> +
> + This command is valid if ``UBLK_F_USER_RECOVERY`` feature is enabled. This
> + command is accepted after the old process has exited, ublk device is quiesced
> + and ``/dev/ublkc*`` is closed. User should send this command before he starts
> + a new process which opens ``/dev/ublkc*``. When this command returns, the
> + ublk device is ready for the new process.
> +
> +- ``UBLK_CMD_END_USER_RECOVERY``
> +
> + This command is valid if ``UBLK_F_USER_RECOVERY`` feature is enabled. This
> + command is accepted after a new process has opened ``/dev/ublkc*`` and get
> + all ublk queues be ready. When this command returns, ublk device is
> + unquiesced and new I/O requests are passed to the new process.
> +
> +- user recovery feature description
> +
> + Two new features are added for user recovery: ``UBLK_F_USER_RECOVERY`` and
> + ``UBLK_F_USER_RECOVERY_REISSUE``.
> +
> + With ``UBLK_F_USER_RECOVERY`` set, after one ubq_daemon(ublksrv io handler) is
> + dying, ublk does not release ``/dev/ublkc*`` or ``/dev/ublkb*`` but requeues all
The above looks not accurate, the old ubq daemon has to release
/dev/ublkc*, and the new ubq daemon needs to re-open it, and
here I think it is fine to just mention /dev/ublkb* won't be
deleted during the whole recovery, or the device ID is kept,
and it is ublk server's responsibility to recover the device
context by its own knowledge.
thanks,
Ming
Powered by blists - more mailing lists