From e2738d294d0242b1e5d1cc0269a6b36a169ab0dc Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Fri, 11 Aug 2023 18:01:26 -0400 Subject: [PATCH] LU-12645 llite: Move readahead debug before exit The core debug of ll_readahead() is before two return conditions, which makes it really tricky to debug those conditions. Let's fix that. Test-Parameters: trivial Signed-off-by: Patrick Farrell Change-Id: Ic3a3854527cad62c891c6a25029353a4742e555f Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51932 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin --- lustre/llite/rw.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index 91b5784..c4468ee 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -812,24 +812,26 @@ static int ll_readahead(const struct lu_env *env, struct cl_io *io, } spin_unlock(&ras->ras_lock); + pages = ria_page_count(ria); + + RAS_CDEBUG(ras); + CDEBUG(D_READA, + DFID": ria: %lu/%lu, bead: %lu/%lu, pages %lu, hit: %d\n", + PFID(lu_object_fid(&clob->co_lu)), + ria->ria_start_idx, ria->ria_end_idx, + vio->vui_ra_valid ? vio->vui_ra_start_idx : 0, + vio->vui_ra_valid ? vio->vui_ra_pages : 0, + pages, hit); + if (end_idx == 0) { ll_ra_stats_inc(inode, RA_STAT_ZERO_WINDOW); RETURN(0); } - pages = ria_page_count(ria); if (pages == 0) { ll_ra_stats_inc(inode, RA_STAT_ZERO_WINDOW); RETURN(0); } - RAS_CDEBUG(ras); - CDEBUG(D_READA, DFID": ria: %lu/%lu, bead: %lu/%lu, hit: %d\n", - PFID(lu_object_fid(&clob->co_lu)), - ria->ria_start_idx, ria->ria_end_idx, - vio->vui_ra_valid ? vio->vui_ra_start_idx : 0, - vio->vui_ra_valid ? vio->vui_ra_pages : 0, - hit); - /* at least to extend the readahead window to cover current read */ if (!hit && vio->vui_ra_valid && vio->vui_ra_start_idx + vio->vui_ra_pages > ria->ria_start_idx) { @@ -1846,6 +1848,8 @@ static bool ll_use_fast_io(struct file *file, loff_t skip_pages; loff_t stride_bytes = ras->ras_stride_bytes; + RAS_CDEBUG(ras); + if (stride_io_mode(ras) && stride_bytes) { skip_pages = (ras->ras_stride_length + ras->ras_stride_bytes - 1) / stride_bytes; -- 1.8.3.1