From 7b778c9476a43a3e6c80414452e93bcb50c78013 Mon Sep 17 00:00:00 2001 From: Eric Mei Date: Mon, 19 Apr 2010 16:29:27 -0700 Subject: [PATCH] b=22310 temporary fix: align readahead window end to 1M rpc boundary. r=wangdi r=rread --- lustre/llite/rw.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index ea1817f..df40ae6 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -746,8 +746,15 @@ int ll_readahead(const struct lu_env *env, struct cl_io *io, end = ras->ras_window_start + ras->ras_window_len - 1; } if (end != 0) { + unsigned long tmp_end; + /* Align RA window to optimal RPC boundary */ + tmp_end = ((end + 1) & (~(PTLRPC_MAX_BRW_PAGES - 1))) - 1; + if (tmp_end > start) + end = tmp_end; + /* Truncate RA window to end of file */ end = min(end, (unsigned long)((kms - 1) >> CFS_PAGE_SHIFT)); + ras->ras_next_readahead = max(end, end + 1); RAS_CDEBUG(ras); } -- 1.8.3.1