You have been subscribed to a public bug:

== Comment: #0 - Harish Sriram 
Issue:
--------------------------
xfstest fails with sanity checks on seek operations

# uname -a
Linux ltc-tuleta12 4.10.0-21-generic #23~16.04.1-Ubuntu SMP Tue May 2 12:54:57 
UTC 2017 ppc64le ppc64le ppc64le GNU/Linux

Steps to reproduce:
----------------------------------------
1. Create a loop device with xfs filesystem
2. git clone git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git; cd 
xfstests-dev
3. make
4. Create a local.config for running with created loop device
5. Run xfstests-dev test  : ./check tests/generic/285 or ./check 
tests/generic/436

The test 285 fails with following
...
...
07. Test file with unwritten extents, only have dirty pages
07.01 SEEK_HOLE expected 0 or 45056, got 0.                       succ
07.02 SEEK_HOLE expected 1 or 45056, got 1.                       succ
07.03 SEEK_DATA expected 40960 or 40960, got -1.                  FAIL
07.04 SEEK_DATA expected 40960 or 40960, got -1.                  FAIL

08. Test file with unwritten extents, only have unwritten pages
08.01 SEEK_HOLE expected 0 or 45056, got 0.                       succ
08.02 SEEK_HOLE expected 1 or 45056, got 1.                       succ
08.03 SEEK_DATA expected 40960 or 40960, got -1.                  FAIL
08.04 SEEK_DATA expected 40960 or 40960, got -1.                  FAIL

The test 436 fails with 
...
...
14. Test file with unwritten extents, small hole after pagevec dirty pages
14.01 SEEK_HOLE expected 917504 or 4194304, got 3670016.          FAIL
14.02 SEEK_HOLE expected 917504 or 4194304, got 3670016.          FAIL
14.03 SEEK_HOLE expected 3670016 or 4194304, got 3670016.         succ
14.04 SEEK_DATA expected 0 or 0, got 0.                           succ
14.05 SEEK_DATA expected 1 or 1, got 1.                           succ
14.06 SEEK_DATA expected 2752512 or 2752512, got 2752512.         succ

seek sanity check failed!

Full log is attached.

== Comment: #6 - Harish Sriram

commit 5375023ae1266553a7baa0845e82917d8803f48c
Author: Jan Kara <j...@suse.cz>
Date:   Thu May 18 16:36:22 2017 -0700

    xfs: Fix missed holes in SEEK_HOLE implementation
    XFS SEEK_HOLE implementation could miss a hole in an unwritten extent as
    can be seen by the following command:
    
    xfs_io -c "falloc 0 256k" -c "pwrite 0 56k" -c "pwrite 128k 8k"
           -c "seek -h 0" file
    wrote 57344/57344 bytes at offset 0
    56 KiB, 14 ops; 0.0000 sec (49.312 MiB/sec and 12623.9856 ops/sec)
    wrote 8192/8192 bytes at offset 131072
    8 KiB, 2 ops; 0.0000 sec (70.383 MiB/sec and 18018.0180 ops/sec)
    Whence  Result
    HOLE    139264
    
    Where we can see that hole at offset 56k was just ignored by SEEK_HOLE
    implementation. The bug is in xfs_find_get_desired_pgoff() which does
    not properly detect the case when pages are not contiguous.
    
    Fix the problem by properly detecting when found page has larger offset
    than expected.
    
    CC: sta...@vger.kernel.org
    Fixes: d126d43f631f996daeee5006714fed914be32368
    Signed-off-by: Jan Kara <j...@suse.cz>
    Reviewed-by: Brian Foster <bfos...@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.w...@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.w...@oracle.com>


The above commit fixes the generic/436 test, but generic/285 still FAILS.

The generic/285 failure is reproducible on most P8/P9 systems.

** Affects: ubuntu-power-systems
     Importance: High
     Assignee: Canonical Kernel Team (canonical-kernel-team)
         Status: New

** Affects: linux (Ubuntu)
     Importance: High
     Assignee: Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage)
         Status: New


** Tags: architecture-ppc64le bugnameltc-154909 severity-high 
targetmilestone-inin16043
-- 
xfstest sanity checks on seek operations fails
https://bugs.launchpad.net/bugs/1696049
You received this bug notification because you are a member of Kernel Packages, 
which is subscribed to linux in Ubuntu.

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to