linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET v7] io_uring IO interface
@ 2019-01-23 15:35 Jens Axboe
  2019-01-23 15:35 ` [PATCH 13/18] io_uring: add file set registration Jens Axboe
  0 siblings, 1 reply; 30+ messages in thread
From: Jens Axboe @ 2019-01-23 15:35 UTC (permalink / raw)
  To: linux-fsdevel, linux-aio, linux-block; +Cc: hch, jmoyer, avi

Here's v7 of the io_uring interface. Not a lot of changes this time
around, mostly corner cases and error handling that hadn't been
exercised yet.

Only new "feature" is an improvement in sequential buffered IO
performance. This is done by piggy backing on to existing async work if
we're sequential to the previous work item, and it hasn't finished yet.
This greatly reduces the overhead, context switches, and increases the
performance a lot. Using io_uring-cp, as test program that does cp with
io_uring, I saw a 5x improvement in speed when copying a large file.
It's now faster than plan 'cp.

The x86/x86-64 system calls were renumbered, so if you are testing,
be sure to pull apply the renumbering. The fio and liburing repos have
been updated.

The liburing git repo now has a man page for io_uring_register(2),
thanks to Jeff Moyer. Outside of that, not much activity there since
last time. Clone the liburing repo here:

git://git.kernel.dk/liburing

Patches are against 5.0-rc3, and can also be found in my io_uring branch
here:

git://git.kernel.dk/linux-block io_uring

Changes since v6:
- Fix leak of iovec in write path for larger writes
- Fix CQ event filling for error handling of workqueue buffered items
- Improve sequential buffered IO performance
- Fix leak of accounted mem in error path for io_uring_create() (Roman)
- Rebase on v5.0-rc3
- Check for entries == 0 in io_uring_create (Jeff)
- Renumber system calls so they are ready for Arnds unification

 Documentation/filesystems/vfs.txt      |    3 +
 arch/x86/entry/syscalls/syscall_32.tbl |    3 +
 arch/x86/entry/syscalls/syscall_64.tbl |    3 +
 block/bio.c                            |   59 +-
 fs/Makefile                            |    1 +
 fs/block_dev.c                         |   19 +-
 fs/file.c                              |   15 +-
 fs/file_table.c                        |    9 +-
 fs/gfs2/file.c                         |    2 +
 fs/io_uring.c                          | 2540 ++++++++++++++++++++++++
 fs/iomap.c                             |   48 +-
 fs/xfs/xfs_file.c                      |    1 +
 include/linux/bio.h                    |   14 +
 include/linux/blk_types.h              |    1 +
 include/linux/file.h                   |    2 +
 include/linux/fs.h                     |    6 +-
 include/linux/iomap.h                  |    1 +
 include/linux/sched/user.h             |    2 +-
 include/linux/syscalls.h               |    7 +
 include/uapi/asm-generic/unistd.h      |    8 +-
 include/uapi/linux/io_uring.h          |  141 ++
 init/Kconfig                           |    9 +
 kernel/sys_ni.c                        |    4 +
 23 files changed, 2857 insertions(+), 41 deletions(-)

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2019-02-11 20:33 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190129192702.3605-1-axboe@kernel.dk>
     [not found] ` <20190129192702.3605-14-axboe@kernel.dk>
2019-01-30  1:29   ` [PATCH 13/18] io_uring: add file set registration Jann Horn
2019-01-30 15:35     ` Jens Axboe
2019-02-04  2:56     ` Al Viro
2019-02-05  2:19       ` Jens Axboe
2019-02-05 17:57         ` Jens Axboe
2019-02-05 19:08           ` Jens Axboe
2019-02-06  0:27             ` Jens Axboe
2019-02-06  1:01               ` Al Viro
2019-02-06 17:56                 ` Jens Axboe
2019-02-07  4:05                   ` Al Viro
2019-02-07 16:14                     ` Jens Axboe
2019-02-07 16:30                       ` Al Viro
2019-02-07 16:35                         ` Jens Axboe
2019-02-07 16:51                         ` Al Viro
2019-02-06  0:56             ` Al Viro
2019-02-06 13:41               ` Jens Axboe
2019-02-07  4:00                 ` Al Viro
2019-02-07  9:22                   ` Miklos Szeredi
2019-02-07 13:31                     ` Al Viro
2019-02-07 14:20                       ` Miklos Szeredi
2019-02-07 15:20                         ` Al Viro
2019-02-07 15:27                           ` Miklos Szeredi
2019-02-07 16:26                             ` Al Viro
2019-02-07 19:08                               ` Miklos Szeredi
2019-02-07 18:45                   ` Jens Axboe
2019-02-07 18:58                     ` Jens Axboe
2019-02-11 15:55                     ` Jonathan Corbet
2019-02-11 17:35                       ` Al Viro
2019-02-11 20:33                         ` Jonathan Corbet
2019-01-23 15:35 [PATCHSET v7] io_uring IO interface Jens Axboe
2019-01-23 15:35 ` [PATCH 13/18] io_uring: add file set registration Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).