Whamcloud - gitweb
LU-4198 clio: turn on lockless for some kind of IO 01/8201/46
authorJinshan Xiong <jinshan.xiong@intel.com>
Thu, 9 Mar 2017 19:30:00 +0000 (11:30 -0800)
committerOleg Drokin <green@whamcloud.com>
Sat, 8 Feb 2020 04:07:28 +0000 (04:07 +0000)
commit6bce536725efd166d2772f13fe954f271f9c53b8
tree9ed5176dcf42e7840bad5d14a5b711bd4523c43c
parent361e9eaef13c0f472ad45388d3e147dabc32b737
LU-4198 clio: turn on lockless for some kind of IO

We can safely turn on lockless for Direct IO
and no lock.

Direct IO will still enqueue lock in the server side,
and we could not use lockless for in the following case:

1) If group lock is held before DIO, use lockless will
make us deadlock, so we use group lock instead and trust
this to protect consistecy.

2) Direct IO might fallback to Buffer IO in some cases,
and we will restart Direct IO with normal lock holding

The main motivation for this patch is to support AIO.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: Ia004d6b39272df8159c9df3cc76662e198230b55
Reviewed-on: https://review.whamcloud.com/8201
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Patrick Farrell <farr0186@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/cl_object.h
lustre/include/lustre_osc.h
lustre/llite/file.c
lustre/llite/rw.c
lustre/llite/rw26.c
lustre/llite/vvp_io.c
lustre/llite/vvp_page.c
lustre/osc/osc_cache.c
lustre/osc/osc_io.c
lustre/tests/sanity.sh
lustre/tests/sanityn.sh