[lustre-devel] [PATCH 14/25] lustre: clio: Skip prep for transients
James Simmons
jsimmons at infradead.org
Mon Aug 2 12:50:34 PDT 2021
From: Patrick Farrell <farr0186 at gmail.com>
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
WC-bug-id: https://jira.whamcloud.com/browse/LU-13799
Lustre-commit: b8553978789ad3dd ("LU-13799 clio: Skip prep for transients")
Signed-off-by: Patrick Farrell <farr0186 at gmail.com>
Reviewed-on: https://review.whamcloud.com/39448
Reviewed-by: Wang Shilong <wshilong at whamcloud.com>
Reviewed-by: Andreas Dilger <adilger at whamcloud.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
fs/lustre/obdclass/cl_page.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/fs/lustre/obdclass/cl_page.c b/fs/lustre/obdclass/cl_page.c
index 41bd767..4bfa1c5 100644
--- a/fs/lustre/obdclass/cl_page.c
+++ b/fs/lustre/obdclass/cl_page.c
@@ -850,12 +850,15 @@ int cl_page_prep(const struct lu_env *env, struct cl_io *io,
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, slice,
- io);
- if (result != 0)
- break;
+ 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,
+ slice,
+ io);
+ if (result != 0)
+ break;
+ }
}
if (result >= 0) {
--
1.8.3.1
More information about the lustre-devel
mailing list