Skip to contentSkip to conversation

v4.4-rc4 regression with direct-io

DISCUSSION Ross Zwisler 3 participants 4 messages Dec 8, 2015 – Dec 9, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

maintainer
#1 lore raw
Quoted 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...

#2 lore raw
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!

reviewer
#3 lore raw
In reply to Al Viro
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...

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