From: Ming Lei <ming.lei@redhat.com>
To: "Andreas Hindborg (Samsung)" <nmi@metaspace.dk>
Cc: "Niklas Cassel" <Niklas.Cassel@wdc.com>,
"Matias Bjørling" <Matias.Bjorling@wdc.com>,
"open list" <linux-kernel@vger.kernel.org>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Jens Axboe" <axboe@kernel.dk>,
"gost.dev@samsung.com" <gost.dev@samsung.com>,
"hch@infradead.org" <hch@infradead.org>,
"Johannes Thumshirn" <jth@kernel.org>,
"Aravind Ramesh" <Aravind.Ramesh@wdc.com>,
"open list:BLOCK LAYER" <linux-block@vger.kernel.org>,
"Hans Holmberg" <Hans.Holmberg@wdc.com>,
"Minwoo Im" <minwoo.im.dev@gmail.com>
Subject: Re: [PATCH v9 2/2] ublk: enable zoned storage support
Date: Thu, 3 Aug 2023 08:06:00 +0800 [thread overview]
Message-ID: <ZMrvaE4FjdYya72P@fedora> (raw)
In-Reply-To: <87a5v9pzx7.fsf@metaspace.dk>
On Wed, Aug 02, 2023 at 11:09:56AM +0200, Andreas Hindborg (Samsung) wrote:
>
> Ming Lei <ming.lei@redhat.com> writes:
>
> > On Tue, Aug 01, 2023 at 02:11:56PM +0200, Andreas Hindborg (Samsung) wrote:
> >>
> >> Niklas Cassel <Niklas.Cassel@wdc.com> writes:
> >>
> >> > On Fri, Jul 14, 2023 at 09:25:10AM +0200, Andreas Hindborg wrote:
> >> >> From: Andreas Hindborg <a.hindborg@samsung.com>
> >> >
> >> > Hello Andreas!
> >> >
> >>
> >> <snip>
> >>
> >> >> /* for READ request, writing data in iod->addr to rq buffers */
> >> >> @@ -1120,6 +1404,11 @@ static void ublk_commit_completion(struct ublk_device *ub,
> >> >> /* find the io request and complete */
> >> >> req = blk_mq_tag_to_rq(ub->tag_set.tags[qid], tag);
> >> >>
> >> >> + if (io->flags & UBLK_IO_FLAG_ZONE_APPEND) {
> >> >
> >> > Do we really need to introduce a completely new flag just for this?
> >> >
> >> > if (req_op(req) == REQ_OP_ZONE_APPEND)
> >> >
> >> > should work just as well, no?
> >>
> >> Makes sense, thanks.
> >
> > The above one can be replaced with req_op().
> >
> > But extra cost is added when retrieving request for the check in
> > __ublk_ch_uring_cmd().
> >
>
> How about this (diff to v9):
>
> @@ -1709,7 +1702,7 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
> goto out;
>
> if (ublk_support_user_copy(ubq) &&
> - !(io->flags & UBLK_IO_FLAG_ZONE_APPEND) && ub_cmd->addr) {
> + _IOC_NR(cmd_op) != UBLK_IO_COMMIT_AND_FETCH_REQ && ub_cmd->addr) {
> ret = -EINVAL;
> goto out;
> }
Let's merge the above original user_copy check into 'case UBLK_IO_FETCH_REQ' &
'case UBLK_IO_COMMIT_AND_FETCH_REQ' first, then this patch can be cleaner, which
can be done as one prep change for zoned support.
> @@ -1751,6 +1744,12 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
> if (!(io->flags & UBLK_IO_FLAG_OWNED_BY_SRV))
> goto out;
>
> + if (ublk_support_user_copy(ubq) &&
> + req_op(req) != REQ_OP_ZONE_APPEND && ub_cmd->addr) {
> + ret = -EINVAL;
> + goto out;
> + }
> +
Given request is available for UBLK_IO_COMMIT_AND_FETCH_REQ, this approach is
good, and UBLK_IO_FETCH_REQ cmd doesn't have OP.
Thanks,
Ming
prev parent reply other threads:[~2023-08-03 0:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 7:25 [PATCH v9 0/2] ublk: enable zoned storage support Andreas Hindborg
2023-07-14 7:25 ` [PATCH v9 1/2] ublk: add helper to check if device supports user copy Andreas Hindborg
2023-07-14 10:00 ` Johannes Thumshirn
2023-07-14 7:25 ` [PATCH v9 2/2] ublk: enable zoned storage support Andreas Hindborg
2023-07-14 10:04 ` Johannes Thumshirn
2023-07-19 9:26 ` Ming Lei
2023-07-19 12:41 ` Ming Lei
2023-08-02 10:19 ` Andreas Hindborg (Samsung)
2023-07-19 12:01 ` Niklas Cassel
2023-08-01 12:11 ` Andreas Hindborg (Samsung)
2023-08-01 12:58 ` Ming Lei
2023-08-02 9:09 ` Andreas Hindborg (Samsung)
2023-08-03 0:06 ` Ming Lei [this message]
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=ZMrvaE4FjdYya72P@fedora \
--to=ming.lei@redhat.com \
--cc=Aravind.Ramesh@wdc.com \
--cc=Hans.Holmberg@wdc.com \
--cc=Matias.Bjorling@wdc.com \
--cc=Niklas.Cassel@wdc.com \
--cc=axboe@kernel.dk \
--cc=dlemoal@kernel.org \
--cc=gost.dev@samsung.com \
--cc=hch@infradead.org \
--cc=jth@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=minwoo.im.dev@gmail.com \
--cc=nmi@metaspace.dk \
/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.