Re: mmap over nfs leads to excessive system load

From: Trond Myklebust
Date: Wed Nov 16 2005 - 18:06:23 EST


On Wed, 2005-11-16 at 14:39 -0800, Kenny Simpson wrote:
> --- Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote:
> > I'm getting lost here. Please could you spell out the testcases that are
> > not working.
>
> I've redone my test cases and have confirmed that O_DIRECT with pwrite64 triggers the bad
> condition.
>
> The cases that are fine are:
> pwrite64
> ftruncate with O_DIRECT
> ftruncate
>
> Also, when the system is in this state, if I try to 'ls' the file,
> the 'ls' process becomes stuck in state D in sync_page. stracing the 'ls'
> shows it is in a call to stat64.
>
> -Kenny

Chuck, can you take a look at this?

Kenny is seeing what a hang when using pwrite64() on an O_DIRECT file
and the file size exceeds 4Gb. Server is a NetApp filer w/ NFSv3.

I had a quick look at nfs_file_direct_write(), and among other things,
it would appear that it is not doing any of the usual overflow checks on
*pos and the count size (see generic_write_checks()). In particular,
checks are missing against overflow vs. MAX_NON_LFS if O_LARGEFILE is
not set (and also against overflow vs. s_maxbytes, but that is less
relevant here).

Cheers,
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/