From 8c800f3230f995df60654855c9d6f4b6d6cf526a Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 3 May 2022 14:25:36 -0500 Subject: [PATCH] LU-15815 llite: disable fast_read and workaround Revert the fast_read stale data workaround from LU-14541 and disable fast_read by default. The workaround causes applications to receive spurious SIGBUGs when reclaim is concurrent with mmap page fault handlers. We disable fast read to avoid the stale data issue entirely. This reverts commit f2a16793fa4316fc9ccdc46bcfe54f6b8d1e442b and re-exposes us to the consistency issues described in LU-14541. Lustre-change: https://review.whamcloud.com/47204 Signed-off-by: John L. Hammond Change-Id: I716b1fd6ab22242b9267b8883f0371a360aaecef Reviewed-on: https://review.whamcloud.com/47205 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Patrick Farrell Reviewed-by: Andreas Dilger --- lustre/llite/llite_lib.c | 2 +- lustre/llite/vvp_page.c | 6 ------ lustre/tests/sanity.sh | 2 ++ 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index ab9b17b..4399012 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -168,7 +168,7 @@ static struct ll_sb_info *ll_init_sbi(void) atomic_set(&sbi->ll_sa_running, 0); atomic_set(&sbi->ll_agl_total, 0); sbi->ll_flags |= LL_SBI_AGL_ENABLED; - sbi->ll_flags |= LL_SBI_FAST_READ; + /* Disable LL_SBI_FAST_READ by default, see LU-15815. */ sbi->ll_flags |= LL_SBI_TINY_WRITE; sbi->ll_flags |= LL_SBI_PARALLEL_DIO; sbi->ll_flags |= LL_SBI_MMAP_RA_LOGIC; diff --git a/lustre/llite/vvp_page.c b/lustre/llite/vvp_page.c index 894f42a..7028526 100644 --- a/lustre/llite/vvp_page.c +++ b/lustre/llite/vvp_page.c @@ -171,12 +171,6 @@ static void vvp_page_delete(const struct lu_env *env, ClearPagePrivate(vmpage); vmpage->private = 0; - - /** - * Vmpage might not be released due page refcount != 2, - * clear Page uptodate here to avoid stale data. - */ - ClearPageUptodate(vmpage); /* * Reference from vmpage to cl_page is removed, but the reference back * is still here. It is removed later in vvp_page_fini(). diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index cd3e081..594918d 100755 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -43,6 +43,8 @@ ALWAYS_EXCEPT="$SANITY_EXCEPT " ALWAYS_EXCEPT+=" 42a 42b 42c " # bug number: LU-8411 LU-9054 LU-14921 EX-4334 ALWAYS_EXCEPT+=" 407 312 101f 101k 428" +# bug number: LU-15815 LU-15815 +ALWAYS_EXCEPT+=" 101j 271a" if $SHARED_KEY; then # bug number: LU-14181 LU-14181 -- 1.8.3.1