All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincent Fu <vincentfu@gmail.com>
To: Ankit Kumar <ankit.kumar@samsung.com>, axboe@kernel.dk
Cc: fio@vger.kernel.org, kbusch@kernel.org, joshi.k@samsung.com,
	martin.petersen@oracle.com
Subject: Re: [PATCH v3 00/10] Protection information support for io_uring passthrough engine
Date: Mon, 14 Aug 2023 10:40:31 -0400	[thread overview]
Message-ID: <071f3084-ce5d-8326-01a2-d9c499eb79e3@gmail.com> (raw)
In-Reply-To: <20230814145747.114725-1-ankit.kumar@samsung.com>

On 8/14/23 10:57, Ankit Kumar wrote:
> This patch series enables protection information support with io_uring
> passthrough (io_uring_cmd) ioengine. This support is added for both DIF
> (extended logical blocks) and DIX (separate metadata buffer) cases.
> 
> The initial patch adds support for metadata buffer. As we are unaware
> of metadata size during metadata buffer allocation, we provide an
> option md_per_io_size. This must be used to specify metadata size for
> single IO, if namespace is formatted with separate metadata buffer.
> 
> This then enables the protection information support with and without
> PRACT bit set for both DIF and DIX cases. The support covers 16-bit and
> 64-bit guard protection information format, without storage tags. As
> 32-bit guard protection information format mandates minimum 16 bits for
> storage tags, it is not considered.
> 
> For the sake of consistency metadata and protection information specific
> options are the same as the ones used by SPDK's external ioengine.
> 
> This series also borrows relevant kernel crc16-t10 and NVMe CRC64
> generation files, along with 48-bit accessors for reference tags.
> 
> The NVMe CRC64 table is not generated at build time which is what kernel
> does. This will be done in future.
> 
> Changes from v2:
>   - fix windows/mac build issue from crct10 files (missed during v2)
>     https://github.com/fiotestbot/fio/actions/runs/5830346708
> 
> Changes from v1:
>   - Fixed build issue on windows and macos.
>   - Changed name of CRC64 tables and algorithm as per NVMe command set
>     specification (Keith's suggestion).
>   - Addressed review comments from Vincent.
> 
> Ankit Kumar (10):
>    engines:io_uring: add missing error during open file
>    engines:io_uring: update arguments to fetch nvme data
>    engines:io_uring: enable support for separate metadata buffer
>    engines:io_uring: uring_cmd add support for protection info
>    io_u: move engine data out of union
>    crc: pull required crc16-t10 files from linux kernel
>    engines:io_uring: generate and verify pi for 16b guard
>    crc: pull required crc64 nvme apis from linux kernel
>    engines:nvme: pull required 48 bit accessors from linux kernel
>    engines:io_uring: generate and verify pi for 64b guard
> 
>   HOWTO.rst              |  39 ++++
>   crc/crc-t10dif.h       |   9 +
>   crc/crc64.c            |  32 +++
>   crc/crc64.h            |   3 +
>   crc/crc64table.h       | 130 ++++++++++++
>   crc/crct10dif_common.c |  78 +++++++
>   engines/io_uring.c     | 225 +++++++++++++++++---
>   engines/nvme.c         | 466 +++++++++++++++++++++++++++++++++++++++--
>   engines/nvme.h         | 230 +++++++++++++++++++-
>   fio.1                  |  38 ++++
>   io_u.h                 |   2 +-
>   11 files changed, 1199 insertions(+), 53 deletions(-)
>   create mode 100644 crc/crc-t10dif.h
>   create mode 100644 crc/crc64table.h
>   create mode 100644 crc/crct10dif_common.c
> 

Applied. Thanks Ankit!

Vincent

  reply	other threads:[~2023-08-14 14:41 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20230814093836epcas5p44bc762fa6e4368d532126494115aeba4@epcas5p4.samsung.com>
2023-08-14 14:57 ` [PATCH v3 00/10] Protection information support for io_uring passthrough engine Ankit Kumar
2023-08-14 14:40   ` Vincent Fu [this message]
     [not found]   ` <CGME20230814093838epcas5p31b8e832e14afecd49ac828505f325b74@epcas5p3.samsung.com>
2023-08-14 14:57     ` [PATCH v3 01/10] engines:io_uring: add missing error during open file Ankit Kumar
     [not found]   ` <CGME20230814093840epcas5p4177e2c9b9b01f99ea5fd1edd6bc8648b@epcas5p4.samsung.com>
2023-08-14 14:57     ` [PATCH v3 02/10] engines:io_uring: update arguments to fetch nvme data Ankit Kumar
     [not found]   ` <CGME20230814093842epcas5p22d5ee07c754ebd5067df214fe4f26dec@epcas5p2.samsung.com>
2023-08-14 14:57     ` [PATCH v3 03/10] engines:io_uring: enable support for separate metadata buffer Ankit Kumar
     [not found]   ` <CGME20230814093844epcas5p2a8eddaeddfbfd01e219491c2c4d79cd7@epcas5p2.samsung.com>
2023-08-14 14:57     ` [PATCH v3 04/10] engines:io_uring: uring_cmd add support for protection info Ankit Kumar
     [not found]   ` <CGME20230814093845epcas5p1e05696c12c9a9720252b80a522d7199c@epcas5p1.samsung.com>
2023-08-14 14:57     ` [PATCH v3 05/10] io_u: move engine data out of union Ankit Kumar
     [not found]   ` <CGME20230814093848epcas5p412a0c5dbf28155c30fe89297135c021d@epcas5p4.samsung.com>
2023-08-14 14:57     ` [PATCH v3 06/10] crc: pull required crc16-t10 files from linux kernel Ankit Kumar
     [not found]   ` <CGME20230814093849epcas5p431ac99960acca2847c4c3226c5781c7e@epcas5p4.samsung.com>
2023-08-14 14:57     ` [PATCH v3 07/10] engines:io_uring: generate and verify pi for 16b guard Ankit Kumar
     [not found]   ` <CGME20230814093851epcas5p28d3ff209e6f92d407d021a566946cacd@epcas5p2.samsung.com>
2023-08-14 14:57     ` [PATCH v3 08/10] crc: pull required crc64 nvme apis from linux kernel Ankit Kumar
     [not found]   ` <CGME20230814093853epcas5p4973ef04622e9bafbc73a9a71c84b94ca@epcas5p4.samsung.com>
2023-08-14 14:57     ` [PATCH v3 09/10] engines:nvme: pull required 48 bit accessors " Ankit Kumar
     [not found]   ` <CGME20230814093854epcas5p3875babea8f98e2414d06ca075d0cd18e@epcas5p3.samsung.com>
2023-08-14 14:57     ` [PATCH v3 10/10] engines:io_uring: generate and verify pi for 64b guard Ankit Kumar
2023-08-14 21:53   ` [PATCH v3 00/10] Protection information support for io_uring passthrough engine 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=071f3084-ce5d-8326-01a2-d9c499eb79e3@gmail.com \
    --to=vincentfu@gmail.com \
    --cc=ankit.kumar@samsung.com \
    --cc=axboe@kernel.dk \
    --cc=fio@vger.kernel.org \
    --cc=joshi.k@samsung.com \
    --cc=kbusch@kernel.org \
    --cc=martin.petersen@oracle.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.