Whamcloud - gitweb
LU-4198 clio: AIO support for direct IO 16/32416/28
authorJinshan Xiong <jinshan.xiong@uber.com>
Mon, 29 Apr 2019 08:30:05 +0000 (16:30 +0800)
committerOleg Drokin <green@whamcloud.com>
Sat, 8 Feb 2020 04:07:51 +0000 (04:07 +0000)
commitd1dded6e28473d889a9b24b47cbc804f90dd2956
tree1a85c8895a64ad81e59d0ec1261127e68d54c3e2
parent6bce536725efd166d2772f13fe954f271f9c53b8
LU-4198 clio: AIO support for direct IO

This patch try to add aio support for Lustre, AIO is
doing IO like DIO but we don't wait IO finished upon
return, we return EIOCBQUEUED to vfs instead to indicate IO
have been issued, aio_complete() will be called in the
callback once IO have been done.

  fio AIO/DIO bandwidth results:
  # numjob=4, bs=512k

  MB/s      write       read
  master      832       1806
  patched    6591      11800

  fio AIO/DIO IOPS results:
  # 32 clients, 8192 threads
  # ioengine=libaio rw=randread blocksize=4096 iodepth=128 direct=1
  # size=1g runtime=300 group_reporting numjobs=256 create_serialize=0

  IOPS      write       read
  master      99K      1239K
  patched    265K      3498K

Test-Parameters: testgroup=review-ldiskfs-arm
Signed-off-by: Jinshan Xiong <jinshan.xiong@uber.com>
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: If2ac9283612514e10fe342fc43e95b4081347168
Reviewed-on: https://review.whamcloud.com/32416
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Shuichi Ihara <sihara@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/autoconf/lustre-core.m4
lustre/include/cl_object.h
lustre/llite/file.c
lustre/llite/rw26.c
lustre/llite/vvp_io.c
lustre/llite/vvp_page.c
lustre/obdclass/cl_io.c
lustre/osc/osc_cache.c
lustre/tests/sanity.sh