RE: Lockless file reading

From: Nagendra Singh Tomar
Date: Thu Aug 28 2003 - 05:59:55 EST



On Thu, 28 Aug 2003, Timo Sirainen wrote:

> On Thu, 2003-08-28 at 12:56, David Schwartz wrote:
> > > > You said that MD5 wasn't strong enough, and you would like a
> guarantee.
> >
> > > Yes. I don't really like it if my program heavily relies on
> something
> > > that can go wrong in some situations.
> >
> > Okay, this is too much. Your alternative, assuming the kernel
> won't
> > re-order writes, is clearly relying on something that can go wrong.
>
> Reorder on per-byte basis? Per-page/block would still be acceptable.
>
> Anyway, the alternative would be shared mmap()ed file. You can trust
> 32bit memory updates to be atomic, right?
>
> Or what about: write("12"), fsync(), write("12")? Is it still possible
> for read() to return "1x1x"?

No. Not possible. fsync() doesn't really make a difference here. Just that
the first "12" gets its way into the disk. Th read will still read both
"12"s from the cache (in very high possibility). Even if the page caches
are stolen (due to mem shortage) the kernel file cachecing will ensure
that you get consistent data.

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

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