Whamcloud - gitweb
LU-13799 llite: Modify AIO/DIO reference counting 42/39442/13
authorPatrick Farrell <farr0186@gmail.com>
Fri, 7 May 2021 15:50:51 +0000 (11:50 -0400)
committerPatrick Farrell <pfarrell@whamcloud.com>
Sat, 3 Jul 2021 19:01:15 +0000 (15:01 -0400)
commit64167b6123a7431837271cbe4ae1a7f3d873f3b2
treea2e2fe82c8a98a15921fc5c4a89e66d392c7e14d
parent5a8088d385ad034df2e0f2a4338e9415a73fe785
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

Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: I970cda20417265b4b66a8eed6e74440e5d3373b8
lustre/include/cl_object.h
lustre/llite/file.c
lustre/obdclass/cl_io.c
lustre/obdclass/cl_page.c