** Tags removed: triage-a ** Tags added: triage-g -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1696049
Title: xfstest sanity checks on seek operations fails Status in The Ubuntu-power-systems project: In Progress Status in linux package in Ubuntu: Fix Released Status in linux source package in Zesty: In Progress Status in linux source package in Artful: Fix Released Bug description: == 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-systems/+bug/1696049/+subscriptions -- 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