Re: [BUG] nfs: readv/writev with O_DIRECT fails on 2.6.24-rc1




On Mon, 2007-10-29 at 13:00 +0530, gurudas pai wrote:
Hi,

While running olt kit on 2.6.24-rc1 over nfs , Oracle reported I/O
errors. I debugged little more and found that readv/writev are failing
with O_DIRECT on nfs ( netapp's filer).

I am able to re-produce same error using ltp/diotest5.

./diotest5 -f /storage/nas/testfile -v 5

diotest05 1953719669 FAIL : readv failed: Invalid argument
diotest05 1953719670 FAIL : Read with Direct IO, Write without
diotest05 1953719671 FAIL : writev failed: Invalid argument
diotest05 1953719672 FAIL : Write with Direct IO, Read without
diotest05 1953719673 FAIL : writev failed: Invalid argument
diotest05 1953719674 FAIL : Read, Write with Direct IO
diotest05 0 INFO : 3/3 testblocks failed

>strace -e readv,writev ./diotest5 -f /storage/nas/testfile -v 5
writev(3, [{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}], 5) = 20480
readv(4, 0x8051000, 5) = -1 EINVAL (Invalid argument)
diotest05 1953719669 FAIL : readv failed: Invalid argument
diotest05 1953719670 FAIL : Read with Direct IO, Write without
writev(3, [{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}], 5) = -1 EINVAL(Invalid argument)
diotest05 1953719671 FAIL : writev failed: Invalid argument
diotest05 1953719672 FAIL : Write with Direct IO, Read without
writev(3, [{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096}], 5) = -1 EINVAL(Invalid argument)
diotest05 1953719673 FAIL : writev failed: Invalid argument
diotest05 1953719674 FAIL : Read, Write with Direct IO
diotest05 0 INFO : 3/3 testblocks failed
Process 4749 detached


mount options:
rw,bg,nointr,hard,timeo=600,wsize=32768,rsize=32768,nfsvers=3,tcp,actimeo=0


Please let me know if I have to try test/debug patch.

Nobody has yet added support for nvec>1.

Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages