Whamcloud - gitweb
LU-9409 llite: Add tiny write support 03/27903/29
authorPatrick Farrell <paf@cray.com>
Mon, 5 Feb 2018 15:55:35 +0000 (09:55 -0600)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 14 Feb 2018 00:51:28 +0000 (00:51 +0000)
commit94470f7eeab5fde0648a14dda36941402c6a3e10
tree183a1d689d5b1d50016bb8644069003b82798882
parent75364dfc4c241fd92adc97f5a4f8ca486b95ab25
LU-9409 llite: Add tiny write support

If a page is already dirty in the page cache, we can write
to it without a full i/o.  This improves performance for
writes of < 1 page dramatically.

Append writes are a bit tricky, requiring us to take the
range lock (which we can normally avoid), but they are
still much faster than the normal i/o path.

Performance numbers with dd, on a VM with an older Xeon.

All numbers in MiB/s.

                8 bytes 1KiB
Without patch:  .75     75
With patch:     6.5     153

Cray-bug-id: LUS-1705
Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: I75cc72ceb5f174a5394af8ffe5df4fe9583f19a3
Reviewed-on: https://review.whamcloud.com/27903
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
14 files changed:
lustre/include/cl_object.h
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/rw26.c
lustre/obdclass/cl_object.c
lustre/obdclass/cl_page.c
lustre/osc/osc_internal.h
lustre/osc/osc_io.c
lustre/osc/osc_page.c
lustre/tests/functions.sh
lustre/tests/mpi/write_disjoint.c
lustre/tests/parallel-scale.sh
lustre/tests/sanity.sh
lustre/tests/sanityn.sh