Whamcloud - gitweb
EX-5014 pcc: Add dio support for data copy during attach
authorPatrick Farrell <pfarrell@whamcloud.com>
Mon, 11 Jul 2022 17:58:08 +0000 (13:58 -0400)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 9 Sep 2022 01:28:39 +0000 (01:28 +0000)
commit3b00916739129733877c7c508fdcfb89f11a32af
tree8fc4dfe31bdc4ee31a7931f2409c6d1e26586649
parent947d6711a940e11468df900fd1e981acd3ab1ab3
EX-5014 pcc: Add dio support for data copy during attach

PCC attach performance is bottlenecked by single threaded
buffered I/O performance.  We could do multi-threading, but
multi-threaded buffered I/O to one file has a very low
performance ceiling.  In order to significantly speed up
PCC attach performance, we need to switch to DIO.

DIO cannot be done from kernel memory due to various
restrictions, so we call out to a usermode helper.

Note that the helper uses open by fid because given a
file pointer, it's not possible to reliably generate the
path to a file on Lustre due to container namespace issues.
Specifically, the path used by the user may not work for
our helper program due to namespace differences.  So we
must use open by fid for the Lustre side of the copy.

This patch improves attach performance from about 1 GiB/s
to about 5 GiB/s.  This performance figure includes time to
read the data from Lustre *and* to write it out to PCC.

Temporarily disable sanity-pcc/45 until the deadlock problem is
fixed.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Idb2a12296c3e4778763c9b576bbb0ecd2570a458
Reviewed-on: https://review.whamcloud.com/47158
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/llite/lproc_llite.c
lustre/llite/pcc.c
lustre/llite/pcc.h
lustre/tests/sanity-pcc.sh
lustre/tests/test-framework.sh
lustre/utils/Makefile.am
lustre/utils/ll_fid_path_copy.c [new file with mode: 0644]
lustre/utils/obd.c