userspace PI passthrough via io_uring
From: | Bob Liu <bob.liu-AT-oracle.com> | |
To: | linux-block-AT-vger.kernel.org | |
Subject: | [RFC PATCH 0/4] userspace PI passthrough via io_uring | |
Date: | Wed, 26 Feb 2020 16:37:15 +0800 | |
Message-ID: | <20200226083719.4389-1-bob.liu@oracle.com> | |
Cc: | axboe-AT-kernel.dk, martin.petersen-AT-oracle.com, linux-fsdevel-AT-vger.kernel.org, darrick.wong-AT-oracle.com, io-uring-AT-vger.kernel.org, Bob Liu <bob.liu-AT-oracle.com> | |
Archive-link: | Article |
This RFC provides a rough implementation of a mechanism to allow userspace to attach protection information (e.g. T10 DIF) data to a disk write and to receive the information alongside a disk read. The interface is an extension to the io_uring interface: two new commands (IORING_OP_READV{WRITEV}_PI) are provided. The last struct iovec in the arg list is interpreted to point to a buffer containing the the PI data. Patch #1 add two new commands to io_uring. Patch #2 introduces two helper funcs in bio-integrity. Patch #3 implement the PI passthrough in direct-io of block-dev. (Similar extensions may add to fs/direct-io.c and fs/maps/directio.c) Patch #4 add io_uring use space test case to liburing. Welcome any feedbacks. Thanks! There was attempt before[1], but was based on AIO at that time. [1] https://www.mail-archive.com/linux-scsi@vger.kernel.org/m... Bob Liu (3): io_uring: add IORING_OP_READ{WRITE}V_PI cmd bio-integrity: introduce two funcs handle protect information block_dev: support protect information passthrough block/bio-integrity.c | 77 +++++++++++++++++++++++++++++++++++++++++++ fs/block_dev.c | 17 ++++++++++ fs/io_uring.c | 12 +++++++ include/linux/bio.h | 14 ++++++++ include/linux/fs.h | 1 + include/uapi/linux/io_uring.h | 2 ++ 6 files changed, 123 insertions(+) -- 2.9.5