All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Anuj Gupta <anuj20.g@samsung.com>
Cc: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org,
	martin.petersen@oracle.com, asml.silence@gmail.com,
	anuj1072538@gmail.com, krisman@suse.de, io-uring@vger.kernel.org,
	linux-nvme@lists.infradead.org, linux-block@vger.kernel.org,
	gost.dev@samsung.com, linux-scsi@vger.kernel.org,
	vishak.g@samsung.com, Kanchan Joshi <joshi.k@samsung.com>
Subject: Re: [PATCH v4 07/11] io_uring/rw: add support to send meta along with read/write
Date: Thu, 17 Oct 2024 10:10:57 +0200	[thread overview]
Message-ID: <20241017081057.GA27241@lst.de> (raw)
In-Reply-To: <20241016112912.63542-8-anuj20.g@samsung.com>

s/meta/metadata/ in the subject.

> +	const struct io_uring_meta *md = (struct io_uring_meta *)sqe->big_sqe_cmd;

Overly long line.

> +	if (!meta_type)
> +		return 0;
> +	if (!(meta_type & META_TYPE_INTEGRITY))
> +		return -EINVAL;

What is the meta_type for?  To distintinguish PI from non-PI metadata?
Why doesn't this support non-PI metadata?  Also PI or TO_PI might be
a better name than the rather generic integrity.  (but I'll defer to
Martin if he has any good arguments for naming here).

>  static bool need_complete_io(struct io_kiocb *req)
>  {
> +	struct io_rw *rw = io_kiocb_to_cmd(req, struct io_rw);
> +
> +	/* Exclude meta IO as we don't support partial completion for that */
>  	return req->flags & REQ_F_ISREG ||
> -		S_ISBLK(file_inode(req->file)->i_mode);
> +		S_ISBLK(file_inode(req->file)->i_mode) ||
> +		!(rw->kiocb.ki_flags & IOCB_HAS_METADATA);
>  }

What partial ocmpletions aren't supported?  Note that this would
trigger easily as right now metadata is only added for block devices
anyway.

> +	if (unlikely(kiocb->ki_flags & IOCB_HAS_METADATA)) {

For a workload using metadata this is everything but unlikely.  Is
there a specific reason you're trying to override the existing
branch predictor here (although on at least x86_64 gcc these kinds
of unlikely calls tend to be no-ops anyway).

> +		struct io_async_rw *io = req->async_data;
> +
> +		if (!(req->file->f_flags & O_DIRECT))
> +			return -EOPNOTSUPP;

I guess you are forcing this here rather in the file oerations instance
because the union of the field in struct io_async_rw.  Please add comment
about that.

> +	/* wpq is for buffered io, while meta fields are used with direct io*/

missing whitespace before the closing of the comment.

  reply	other threads:[~2024-10-17  8:11 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20241016113705epcas5p1edc284b347de99bc34802b0b0c5e1b27@epcas5p1.samsung.com>
2024-10-16 11:29 ` [PATCH v4 00/11] Read/Write with meta/integrity Anuj Gupta
2024-10-16 11:29   ` [PATCH v4 01/11] block: define set of integrity flags to be inherited by cloned bip Anuj Gupta
2024-10-16 18:03     ` Keith Busch
2024-10-16 11:29   ` [PATCH v4 02/11] block: copy back bounce buffer to user-space correctly in case of split Anuj Gupta
2024-10-16 18:04     ` Keith Busch
2024-10-17  7:53     ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 03/11] block: modify bio_integrity_map_user to accept iov_iter as argument Anuj Gupta
2024-10-16 11:29   ` [PATCH v4 04/11] block: define meta io descriptor Anuj Gupta
2024-10-16 19:35     ` Keith Busch
2024-10-17  5:49       ` Anuj Gupta
2024-10-17  7:57     ` Christoph Hellwig
2024-10-22  2:11     ` Martin K. Petersen
2024-10-22  6:04       ` Christoph Hellwig
2024-10-23  1:20         ` Martin K. Petersen
2024-10-28  3:46       ` Anuj Gupta
2024-10-16 11:29   ` [PATCH v4 05/11] fs: introduce IOCB_HAS_METADATA for metadata Anuj Gupta
2024-10-17  7:58     ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 06/11] block: add flags for integrity meta Anuj Gupta
2024-10-17  8:00     ` Christoph Hellwig
2024-10-17 10:45       ` Anuj Gupta
2024-10-17 12:01         ` Christoph Hellwig
2024-10-17 12:59           ` Anuj gupta
2024-10-17 14:34             ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 07/11] io_uring/rw: add support to send meta along with read/write Anuj Gupta
2024-10-17  8:10     ` Christoph Hellwig [this message]
2024-10-17 22:51       ` Jens Axboe
2024-10-21  5:31       ` Anuj Gupta
2024-10-22  6:02         ` Christoph Hellwig
2024-10-22  1:50       ` Martin K. Petersen
2024-10-16 11:29   ` [PATCH v4 08/11] block: introduce BIP_CHECK_GUARD/REFTAG/APPTAG bip_flags Anuj Gupta
2024-10-17  8:12     ` Christoph Hellwig
2024-10-17 10:46       ` Anuj Gupta
2024-10-17 14:37         ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 09/11] block: add support to pass user meta buffer Anuj Gupta
2024-10-17  8:15     ` Christoph Hellwig
2024-10-17  8:24     ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 10/11] nvme: add support for passing on the application tag Anuj Gupta
2024-10-17  8:14     ` Christoph Hellwig
2024-10-16 11:29   ` [PATCH v4 11/11] scsi: add support for user-meta interface Anuj Gupta
2024-10-17  8:15     ` Christoph Hellwig
2024-10-17 11:39     ` Anuj Gupta
2024-10-17 14:39       ` Christoph Hellwig
2024-10-18  8:26         ` Anuj Gupta
2024-10-18  9:02           ` Christoph Hellwig
2024-10-22  1:58     ` Martin K. Petersen
2024-10-28  7:36       ` Anuj Gupta
2024-10-29  2:24         ` Martin K. Petersen
2024-10-22  2:04   ` [PATCH v4 00/11] Read/Write with meta/integrity Martin K. Petersen

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=20241017081057.GA27241@lst.de \
    --to=hch@lst.de \
    --cc=anuj1072538@gmail.com \
    --cc=anuj20.g@samsung.com \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=gost.dev@samsung.com \
    --cc=io-uring@vger.kernel.org \
    --cc=joshi.k@samsung.com \
    --cc=kbusch@kernel.org \
    --cc=krisman@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=vishak.g@samsung.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.