------- Comment From hasri...@in.ibm.com 2017-10-05 22:37 EDT-------
(In reply to comment #63)
> The reverse bisect reported the following commit as the fix:
>
> 8affebe ("xfs: fix off-by-one on max nr_pages in
> xfs_find_get_desired_pgoff()")
>
> I built a 17.04(Zesty) test kernel with a pick of this commit. The test
> kernel can be downloaded from:
>
> http://kernel.ubuntu.com/~jsalisbury/lp1696049/
>
> Can you test this kernel and see if it resolves this bug?
The kernel provided resolves the issue.
Thanks,
Harish
--
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