public inbox for [email protected]
 help / color / mirror / Atom feed
From: Kanchan Joshi <[email protected]>
To: Keith Busch <[email protected]>, Anuj Gupta <[email protected]>
Cc: [email protected], [email protected], [email protected],
	[email protected], [email protected],
	[email protected], [email protected], [email protected],
	[email protected], [email protected],
	[email protected], [email protected],
	[email protected], [email protected],
	[email protected]
Subject: Re: [PATCH v5 06/10] io_uring/rw: add support to send metadata along with read/write
Date: Wed, 30 Oct 2024 10:35:19 +0530	[thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>

On 10/30/2024 4:54 AM, Keith Busch wrote:
> On Tue, Oct 29, 2024 at 09:53:58PM +0530, Anuj Gupta wrote:
>> This patch adds the capability of sending metadata along with read/write.
>> A new meta_type field is introduced in SQE which indicates the type of
>> metadata being passed. This meta is represented by a newly introduced
>> 'struct io_uring_meta_pi' which specifies information such as flags,buffer
>> length,seed and apptag. Application sets up a SQE128 ring, prepares
>> io_uring_meta_pi within the second SQE.
>> The patch processes the user-passed information to prepare uio_meta
>> descriptor and passes it down using kiocb->private.
>>
>> Meta exchange is supported only for direct IO.
>> Also vectored read/write operations with meta are not supported
>> currently.
> 
> It looks like it is reasonable to add support for fixed buffers too.
> There would be implications for subsequent patches, mostly patch 10, but
> it looks like we can do that.

Fixed buffers for data continues to be supported with this.
Do you mean fixed buffers for metadata?
We can take that as an incremental addition outside of this series which 
is already touching various subsystems (io_uring, block, nvme, scsi, fs).

> Anyway, this patch mostly looks okay to me. I don't know about the whole
> "meta_type" thing. My understanding from Pavel was wanting a way to
> chain command specific extra options.

Right. During LSFMM, he mentioned Btrfs needed to send extra stuff with 
read/write.
But in general, this is about seeing metadata as a generic term to 
encode extra information into io_uring SQE.
It may not be very uncommon that people will have the need to send extra 
stuff with read/write and add specific processing for that. And 
SQE->meta_type helps to isolate all such processing from the common case 
when no extra stuff is sent.

if (sqe->meta_type)
{
	if (type1(sqe->meta_type))
		process(type1);
	if (type2(sqe>meta_type))
		process(type1);
}

  For example, userspace metadata
> and write hints, and this doesn't look like it can be extended to do
> that.

It can be. And in past I used that to represent different types of write 
hints.
Just that in the current version, write hints are being sent without any 
type.


  reply	other threads:[~2024-10-30  5:05 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20241029163153epcas5p4ab83a94429a227bfc262423aa8a8dd26@epcas5p4.samsung.com>
2024-10-29 16:23 ` [PATCH v5 00/10] Read/Write with meta/integrity Anuj Gupta
     [not found]   ` <CGME20241029163212epcas5p343cd56d66b58a9e7e8e1faa98067891d@epcas5p3.samsung.com>
2024-10-29 16:23     ` [PATCH v5 01/10] block: define set of integrity flags to be inherited by cloned bip Anuj Gupta
     [not found]   ` <CGME20241029163214epcas5p1069ca93a2a9d8840e4f142cc4b713775@epcas5p1.samsung.com>
2024-10-29 16:23     ` [PATCH v5 02/10] block: copy back bounce buffer to user-space correctly in case of split Anuj Gupta
     [not found]   ` <CGME20241029163217epcas5p414d493b7a89c6bd092afd28c4eeea24c@epcas5p4.samsung.com>
2024-10-29 16:23     ` [PATCH v5 03/10] block: modify bio_integrity_map_user to accept iov_iter as argument Anuj Gupta
2024-10-29 21:31       ` Keith Busch
     [not found]   ` <CGME20241029163220epcas5p2207d4c54b8c4811e973fca601fd7e3f5@epcas5p2.samsung.com>
2024-10-29 16:23     ` [PATCH v5 04/10] fs, iov_iter: define meta io descriptor Anuj Gupta
2024-10-30  5:03       ` Christoph Hellwig
     [not found]   ` <CGME20241029163222epcas5p4f46c83e92322214e00212cec15d29489@epcas5p4.samsung.com>
2024-10-29 16:23     ` [PATCH v5 05/10] fs: introduce IOCB_HAS_METADATA for metadata Anuj Gupta
     [not found]   ` <CGME20241029163225epcas5p24ec51c7a9b6b115757ed99cadcc3690c@epcas5p2.samsung.com>
2024-10-29 16:23     ` [PATCH v5 06/10] io_uring/rw: add support to send metadata along with read/write Anuj Gupta
2024-10-29 23:24       ` Keith Busch
2024-10-30  5:05         ` Kanchan Joshi [this message]
2024-10-30  5:08           ` Christoph Hellwig
     [not found]   ` <CGME20241029163228epcas5p1cd9d1df3d8000250d58092ba82faa870@epcas5p1.samsung.com>
2024-10-29 16:23     ` [PATCH v5 07/10] block: introduce BIP_CHECK_GUARD/REFTAG/APPTAG bip_flags Anuj Gupta
2024-10-29 21:40       ` Keith Busch
2024-10-30  5:09       ` Christoph Hellwig
     [not found]   ` <CGME20241029163230epcas5p18172a7e54687e454e4ecb65840810c4e@epcas5p1.samsung.com>
2024-10-29 16:24     ` [PATCH v5 08/10] nvme: add support for passing on the application tag Anuj Gupta
2024-10-29 21:40       ` Keith Busch
     [not found]   ` <CGME20241029163233epcas5p497b3c81dcdf3c691a6f9c461bf0da7ac@epcas5p4.samsung.com>
2024-10-29 16:24     ` [PATCH v5 09/10] scsi: add support for user-meta interface Anuj Gupta
2024-10-30  5:10       ` Christoph Hellwig
     [not found]   ` <CGME20241029163235epcas5p340ce6d131cc7bf220db978a2d4dc24c2@epcas5p3.samsung.com>
2024-10-29 16:24     ` [PATCH v5 10/10] block: add support to pass user meta buffer Anuj Gupta
2024-10-29 21:52       ` Keith Busch

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 \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /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