Whamcloud - gitweb
LU-15815 llite: disable fast_read and workaround 04/47204/3
authorJohn L. Hammond <jhammond@whamcloud.com>
Tue, 3 May 2022 19:25:36 +0000 (14:25 -0500)
committerOleg Drokin <green@whamcloud.com>
Thu, 5 May 2022 18:48:52 +0000 (18:48 +0000)
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 <jhammond@whamcloud.com>
Change-Id: I716b1fd6ab22242b9267b8883f0371a360aaecef
Reviewed-on: https://review.whamcloud.com/47204
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/llite/llite_lib.c
lustre/llite/vvp_page.c
lustre/tests/sanity.sh

index 3d200d7..7378ade 100644 (file)
@@ -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);
index 43cc618..af4ff2e 100644 (file)
@@ -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().
index 7b351d7..39250cc 100755 (executable)
@@ -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