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

From: Trond Myklebust
Date: Mon Oct 29 2007 - 16:01:25 EST



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/