linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>,
	"Patrick J. LoPresti" <lopresti@gmail.com>
Cc: Andreas Dilger <adilger@sun.com>,
	Chris Mason <chris.mason@oracle.com>,
	Jiri Olsa <jolsa@redhat.com>, "Ted Ts'o" <tytso@mit.edu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Oleg Nesterov <oleg@redhat.com>,
	linux-btrfs <linux-btrfs@vger.kernel.org>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC][PATCH] make file's timestamp more accurate
Date: Thu, 09 Sep 2010 09:23:27 -0700	[thread overview]
Message-ID: <1284049407.2762.19.camel@localhost.localdomain> (raw)
In-Reply-To: <4C7CC08A.9010302@jp.fujitsu.com>

On Tue, 2010-08-31 at 17:42 +0900, Satoru Takeuchi wrote:
> linux has supported nanosecond order file's timestamp since 2.5.48.
> However current file timestamp is got by current_fs_time() and
> is only updated once a tick. It can't say true nanosecond accuracy.
> In addition, gettimeofday() before a file operation updating
> {a,c,m}time would outstrip file's timestamp because of the difference
> about time source between gettimeofday() and file's timestamp.
> A certain kind of application would corrupted by this problem.

Applications mixing gettimeofday and filesystem timesamps can currently
use clock_gettime(CLOCK_REALTIME_COARSE,...) - which returns tick
granular timestamps, the same as the filesystem timestamps - method to
avoid this issue.

However, Patrick LoPresti (cc'ed) was working on a similar issue here
connected to nfs.  

> I attached a most simple patch fixing this problem here. However
> it has several problems and I don't say it can be applied as is.
> The most big two problems is the following:
> 
>  - It would cause performance regression, especially in
>    not TSC capable system.
>  - Is gettimeofday()'s monotonicity reliable on all systems?

It *should* be. But hardware issues can cause trouble here.

> The relative discussion:
> http://lkml.org/lkml/2010/7/13/443
> 
> Does anybody have good idea? Should it be tunable, for example?

I think the discussion from earlier suggested that this be configurable
from a mount option so the performance/granularity trade-off can be
managed there. 

Potential pot-holes on the road here: Although I guess doing this on a
per-mount basis in the future could make it difficult for apps that use
CLOCK_REALTIME_COARSE to function if fs granularity is increased. Some
sort of CLOCK_REALTIME_FS could be introduced to map to whichever
granularity is right, but that can only be done on a global basis.
Hrm...

thanks
-john


  reply	other threads:[~2010-09-09 16:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-31  8:42 [RFC][PATCH] make file's timestamp more accurate Satoru Takeuchi
2010-09-09 16:23 ` john stultz [this message]
2010-09-10  5:54   ` Satoru Takeuchi

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=1284049407.2762.19.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=adilger@sun.com \
    --cc=chris.mason@oracle.com \
    --cc=jolsa@redhat.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lopresti@gmail.com \
    --cc=oleg@redhat.com \
    --cc=takeuchi_satoru@jp.fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=tytso@mit.edu \
    /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).