The work done by cpo_prep() (etc) is unnecessary for
transient pages. This gives only a minimal performance
boost and is better seen as a step towards removing the
cl_page abstraction for transient pages.
But, it does consistently give around 1% better
performance.
This patch reduces i/o time in ms/GiB by:
Write: 1 ms/GiB
Read: 1 ms/GiB
Totals:
Write: 169 ms/GiB
Read: 161 ms/GiB
mpirun -np 1 $IOR -w -r -t 64M -b 64G -o ./iorfile --posix.odirect
With previous patches in series:
write 6028 MiB/s
read 6305 MiB/s
Plus this patch:
write 6071 MiB/s
read 6355 MiB/s
Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: Ib94f57cde468c9aaea952e1bb89db8fcf4b35e07
Reviewed-on: https://review.whamcloud.com/39448
Reviewed-by: Wang Shilong <wshilong@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
if (crt >= CRT_NR)
return -EINVAL;
if (crt >= CRT_NR)
return -EINVAL;
- cl_page_slice_for_each(cl_page, slice, i) {
- if (slice->cpl_ops->cpo_own)
- result = (*slice->cpl_ops->io[crt].cpo_prep)(env,
+ if (cl_page->cp_type != CPT_TRANSIENT) {
+ cl_page_slice_for_each(cl_page, slice, i) {
+ if (slice->cpl_ops->cpo_own)
+ result =
+ (*slice->cpl_ops->io[crt].cpo_prep)(env,
- if (result != 0)
- break;
+ if (result != 0)
+ break;
+ }