Re: [patch] SMP alternatives

From: Linus Torvalds
Date: Thu Nov 24 2005 - 13:48:43 EST




On Thu, 24 Nov 2005, linux@xxxxxxxxxxx wrote:
>
> > I suspect that with MAP_SHARED + PROT_WRITE being pretty uncommon anyway,
> > we can probably find trivial patterns in the kernel. Like only one process
> > holding that file open - which is what you get with things that use mmap()
> > to write a new file (I think "ld" used to have a config option to write
> > files that way, for example).
>
> Just a bit of practical experience: I use mmap() to write data a LOT,
> because msync(MS_ASYNC) is the most portable way to do an async write.

Sure. But I suspect that nobody else has that file open when you do so?

In other words, even your usage is something where the OS could tell that
you don't actually need atomic operations. It certainly gets slightly more
complicated (we'd need to trigger some special stuff if another process
does an mmap on it), but it's not conceptually very difficult to just
notice automatically and do the right thing(tm).

Now, if two programs are using mmap() to write to the same file at the
same time, then the kernel can't tell any more. But in that case, you
probably _do_ want atomic ops to be guaranteed, so not disabling them is
the right thing to do there.

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