Whamcloud - gitweb
LU-9920 vvp: dirty pages with pagevec
When doing i/o from multiple writers to a single file, the
per-file page cache lock (the mapping lock) becomes a
bottleneck.
Most current uses are single page at a time. This converts
one prominent use, marking page as dirty, to use a pagevec.
When many threads are writing to one file, this improves
write performance by around 25%.
This requires implementing our own version of the
set_page_dirty-->__set_page_dirty_nobuffers functions.
This was modeled on upstream tip of tree:
v5.2-rc4-224-ge01e060fe0 (7/13/2019)
The relevant code is unchanged since Linux 4.17, and has
changed only minimally since before Linux 2.6.
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifff9cd01f8b4e960bb4ebea560b9a9a01376698d
Reviewed-on: https://review.whamcloud.com/28711
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Shaun Tancheff <stancheff@cray.com>
Reviewed-by: Li Dongyang <dongyangli@ddn.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
12 files changed: