Whamcloud - gitweb
LU-13799 llite: Modify AIO/DIO reference counting
authorPatrick Farrell <farr0186@gmail.com>
Fri, 7 May 2021 15:50:51 +0000 (11:50 -0400)
committerLi Xi <lixi@ddn.com>
Tue, 17 Aug 2021 15:15:20 +0000 (15:15 +0000)
commitc2aa329bc98aa24171cadfce734114bd0cb9bb37
tree0079efd593a716502dbdec111f921a409e40471c
parent2a91b59713c2fe22cda0da47193be27b2ae126cd
LU-13799 llite: Modify AIO/DIO reference counting

For DIO pages, it's enough to have a reference on the
cl_object associated with the AIO.  This saves taking a
reference on the cl_object for each page, which saves about
5% of the time when doing DIO/AIO.

This is possible because the lifecycle of the aio struct is
always greater than that of the associated pages.

This patch reduces i/o time in ms/GiB by:
Write: 6 ms/GiB
Read: 1 ms/GiB

Totals:
Write: 198 ms/GiB
Read: 197 ms/GiB

mpirun -np 1  $IOR -w -r -t 64M -b 64G -o ./iorfile --posix.odirect

With previous patches in series:
write     5030 MiB/s
read      5174 MiB/s

Plus this patch:
write     5183 MiB/s
read      5200 MiB/s

Lustre-change: https://review.whamcloud.com/39442
Lustre-commit: b3de247b76b410101e166b024d65e2bf23d401ba

Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: I970cda20417265b4b66a8eed6e74440e5d3373b8
Reviewed-on: https://review.whamcloud.com/44443
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Li Xi <lixi@ddn.com>
lustre/include/cl_object.h
lustre/llite/file.c
lustre/obdclass/cl_io.c
lustre/obdclass/cl_page.c