v4.4-rc4 regression with direct-io
Subsystems (2)
Hey Jan,
In my test setup this commit:
74cedf9b6c60 ("direct-io: Fix negative return from dio read beyond eof")
causes a regression with XFS and the test generic/113. The test used to pass, but with the above mentioned commit it just hangs indefinitely.
This commit went in between v4.4-rc3 and v4.4-rc4, and it looks like it was marked for stable?
I've run "echo w > /proc/sysrq-trigger", and it doesn't list any locked processes so I don't believe that this is a deadlock. It looks like a livelock?
My test setup is a pair of 4GiB PMEM partitions (one as the test device and one as the scratch) in a qemu virtual machine. This test did not involve DAX, and turning DAX on makes the test pass once again.
Please let me know if you need any more info or have trouble reproducing the issue. I'm happy to test patches.
Thanks,
- Ross
Al Viro
maintainerQuoted 11 lines · Ross Zwisler
Hey Jan,
In my test setup this commit:
74cedf9b6c60("direct-io: Fix negative return from dio read beyond eof")causes a regression with XFS and the test generic/113. The test used to pass, but with the above mentioned commit it just hangs indefinitely.
This commit went in between v4.4-rc3 and v4.4-rc4, and it looks like it was marked for stable?
See the tip of vfs.git#for-linus for fix...
Quoted 7 lines · Al Viro
Quoted 6 lines · Ross Zwisler
Hey Jan,
In my test setup this commit:
74cedf9b6c60("direct-io: Fix negative return from dio read beyond eof")
Quoted 7 lines
Quoted 5 lines
causes a regression with XFS and the test generic/113. The test used to pass, but with the above mentioned commit it just hangs indefinitely.
This commit went in between v4.4-rc3 and v4.4-rc4, and it looks like it was marked for stable?
See the tip of vfs.git#for-linus for fix...
I've confirmed that this fixes my test case. Thanks!
Jan Kara
reviewerQuoted 7 lines · Al Viro
Quoted 6 lines · Ross Zwisler
Hey Jan,
In my test setup this commit:
74cedf9b6c60("direct-io: Fix negative return from dio read beyond eof")
Quoted 7 lines
Quoted 5 lines
causes a regression with XFS and the test generic/113. The test used to pass, but with the above mentioned commit it just hangs indefinitely.
This commit went in between v4.4-rc3 and v4.4-rc4, and it looks like it was marked for stable?
See the tip of vfs.git#for-linus for fix...
Ah, thanks for fixing this up! I'm just wondering how the test program I was using could have passed because pread() I'm doing there must have returned ENOMEM... Argh, I see. I have tested the problem with ext4 which uses DIO_LOCKING mode and in that case 'retval' gets overwritten to 0 by filemap_write_and_wait() call :-|.
Honza
Signature · 2 lines
Jan Kara <[email protected]> SUSE Labs, CR