From 201ade9442828fbb3bedb3b31154d51ead10af41 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. Signed-off-by: John L. Hammond Change-Id: I716b1fd6ab22242b9267b8883f0371a360aaecef Reviewed-on: https://review.whamcloud.com/47204 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Patrick Farrell Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin --- lustre/llite/llite_lib.c | 2 +- lustre/llite/vvp_page.c | 6 ------ lustre/tests/sanity.sh | 4 ++-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 3d200d7..7378ade 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -179,7 +179,7 @@ static struct ll_sb_info *ll_init_sbi(void) atomic_set(&sbi->ll_sa_running, 0); atomic_set(&sbi->ll_agl_total, 0); set_bit(LL_SBI_AGL_ENABLED, sbi->ll_flags); - set_bit(LL_SBI_FAST_READ, sbi->ll_flags); + /* Disable LL_SBI_FAST_READ by default, see LU-15815. */ set_bit(LL_SBI_TINY_WRITE, sbi->ll_flags); set_bit(LL_SBI_PARALLEL_DIO, sbi->ll_flags); ll_sbi_set_encrypt(sbi, true); diff --git a/lustre/llite/vvp_page.c b/lustre/llite/vvp_page.c index 43cc618..af4ff2e 100644 --- a/lustre/llite/vvp_page.c +++ b/lustre/llite/vvp_page.c @@ -170,12 +170,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 7b351d7..39250cc 100755 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -41,8 +41,8 @@ init_logging ALWAYS_EXCEPT="$SANITY_EXCEPT " # bug number for skipped test: LU-9693 LU-6493 LU-9693 ALWAYS_EXCEPT+=" 42a 42b 42c " -# bug number: LU-8411 LU-9054 -ALWAYS_EXCEPT+=" 407 312" +# bug number: LU-8411 LU-9054 LU-15815 LU-15815 +ALWAYS_EXCEPT+=" 407 312 101j 271a" if $SHARED_KEY; then # bug number: LU-14181 LU-14181 -- 1.8.3.1