linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Harshula <harshula@redhat.com>
To: "Myklebust, Trond" <Trond.Myklebust@netapp.com>
Cc: Chuck Lever <chuck.lever@oracle.com>,
	Derek McEachern <derekm@ti.com>,
	"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: NFS Mount Option 'nofsc'
Date: Thu, 09 Feb 2012 16:51:42 +1100	[thread overview]
Message-ID: <1328766702.8981.106.camel@serendib> (raw)
In-Reply-To: <1328760721.3234.86.camel@lade.trondhjem.org>

Hi Trond,

Thanks for the reply. Could you please elaborate on the subtleties
involved that require an application to be rewritten if forcedirectio
mount option was available?

On Thu, 2012-02-09 at 04:12 +0000, Myklebust, Trond wrote:
> On Thu, 2012-02-09 at 14:56 +1100, Harshula wrote:
> >
> > The "sync" option, depending on the NFS server, may impact the NFS
> > server's performance when serving many NFS clients. But still worth a
> > try.
> 
> What on earth makes you think that directio would be any different?

Like I said, sync is still worth a try. I will do O_DIRECT Vs sync mount
option runs and see what the numbers look like. A while back the numbers
for cached Vs direct small random writes showed as the number of threads
increased the cached performance fell well below direct performance. In
this case I'll be looking at large streaming writes, so completely
different scenario, but I'd like to verify the numbers first.

Just to be clear, I am not disagreeing with you. "sync" maybe sufficient
for the scenario I described earlier.

> If
> your performance requirements can't cope with 'sync', then they sure as
> hell won't deal well with 'fsc'.

"fsc"? 

> Directio is _synchronous_ just like 'sync'. The big difference is that
> with 'sync' then at least those reads are still cached.

There's another scenario, which we talked about a while back, where the
cached async reads of a slowly growing file (tail) was spitting out
non-exist NULLs to user space. The forcedirectio mount option should
prevent that. Furthermore, the "sync" mount option will not help anymore
because you removed nfs_readpage_sync().

> > The other hack that seems to work is periodically triggering an
> > nfs_getattr(), via ls -l, to force the dirty pages to be flushed to the
> > NFS server. Not exactly elegant ...
> 
> ???????????????????????????????? 

int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
{
        struct inode *inode = dentry->d_inode;
        int need_atime = NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATIME;
        int err;

        /* Flush out writes to the server in order to update c/mtime.  */
        if (S_ISREG(inode->i_mode)) {
                err = filemap_write_and_wait(inode->i_mapping);
                if (err)
                        goto out;
        }

Thanks,
#


  reply	other threads:[~2012-02-09  5:51 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-08  2:45 NFS Mount Option 'nofsc' Derek McEachern
2012-02-08  4:55 ` Myklebust, Trond
2012-02-08  7:43   ` Harshula
2012-02-08 15:40     ` Chuck Lever
2012-02-09  3:56       ` Harshula
2012-02-09  4:12         ` Myklebust, Trond
2012-02-09  5:51           ` Harshula [this message]
2012-02-09 14:48             ` Malahal Naineni
2012-02-09 15:31             ` Myklebust, Trond
2012-02-10  8:07               ` Harshula
2012-02-10 16:48                 ` Myklebust, Trond
2012-02-20  5:35                   ` Harshula
2012-02-08 18:13   ` Derek McEachern
2012-02-08 18:15     ` Chuck Lever
2012-02-08 19:52       ` Derek McEachern
2012-02-08 20:00         ` Chuck Lever
2012-02-08 21:16           ` Derek McEachern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1328766702.8981.106.camel@serendib \
    --to=harshula@redhat.com \
    --cc=Trond.Myklebust@netapp.com \
    --cc=chuck.lever@oracle.com \
    --cc=derekm@ti.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).