Re: [PATCH 01/11] x86: Fix vtime/file timestamp inconsistencies

From: KOSAKI Motohiro
Date: Thu Jul 15 2010 - 00:42:29 EST


> On Thu, 2010-07-15 at 10:51 +0900, KOSAKI Motohiro wrote:
> > > On Wed, 2010-07-14 at 11:40 +0900, KOSAKI Motohiro wrote:
> > > > Hi
> > > >
> > > > > Due to vtime calling vgettimeofday(), its possible that an application
> > > > > could call time();create("stuff",O_RDRW); only to see the file's
> > > > > creation timestamp to be before the value returned by time.
> > > >
> > > > Just dumb question.
> > > >
> > > > Almost application are using gettimeofday() instead time(). It mean
> > > > your fix don't solve almost application.
> > >
> > > Correct, filesystem timestamps and gettimeofday can still seem
> > > inconsistently ordered. But that is expected.
> > >
> > > Because of granularity differences (one interface is only tick
> > > resolution, the other is clocksource resolution), we can't interleave
> > > the two interfaces (time and gettimeofday, respectively) and expect to
> > > get ordered results.
> >
> > hmmm...
> > Yes, times() vs gettimeofday() mekes no sense. nobody want this. but
> > I don't understand why we can ignore gettimeofday() vs file-tiemstamp.
>
> Oh.. and another bit worth mentioning again:
> clock_gettime(CLOCK_REALTIME_COARSE, ...) provides tick-granular output
> that should be able to be correctly interleaved with filesystem
> timestmaps.
>
> So if there's an application that is using gettimeofday() for logging
> and having problems trying to map the log timestmaps with filesystem
> timestamps, they can use clock_gettime(CLOCK_REALTIME_COARSE,...) to do
> so correctly.

Correct. but I disagree few bit . 1) application naturally assume time don't
makes interleaving. so almost all applications don't have such care. 2) tick-granular fs
timestamp is only current implementaion. perhaps we will change it later. so, applications
don't want to assume fs timestamp granularity is equal to CLOCK_REALTIME_COARSE.



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