DragonFly kernel List (threaded) for 2003-07
Re: MESI Caching work start (was Re: caching and userapi)
On Fri, Jul 18, 2003 at 11:42:15AM -0700, Matthew Dillon wrote:
> :> Ah. Oh. *THAT* caching. *THAT* caching is the MESI caching model
> :> for object data! It's pretty sophisticated but as a first incremental
> :> step it represents implementing shared/exclusive ranged offset 'locks'
> :> on VM Objects, like this (this is just my guess at the initial API,
> :> all comments, ideas, and discussion is welcome!):
> :I may be taking this a step too far, but I had a random thought ...
> :At least on the surface, one of the major challenges of a clustered file
> :system performance is buffer cache coherency. Do you think that the
> :dragonfly model of cache coherency could cleanly extend to that?
> : -Kip
> Absolutely. That's the ultimate goal. I see nothing preventing us
> from extending it to the buffer cache (actually the VM page cache is
> what it would be extended to). We might not be able to extend it all
> the way to mmap() but we could get close enough that another model
> could take over for mmap().
> That's the carrot. If one can make mmap() fully cache coherent between
> machines one would be able to run just about any multi-threaded program
> in a clustered environment without the need for special libraries or
> hacks. Of course, it might not be *efficient*, it would depend on how
> the program was written, but it would be almost entirely transparent.
> And if we could make the mechanism robust that sort of clustering could
> be made to work across internet links, in a large scale WAN environment.
> Supercomputing power cheap!
> Not a bad goal, eh?
> Matthew Dillon
Matt, this is exactly the method propesed by Larry McVoy to avoid
having 1000+ mutexes in a kernel: have a simple, non-mutexed kernel
take care of each cpu and then manage to get a global page cache memory
across them, with mmap fully working.
Have a look at http://lwn.net/2001/1206/a/ccCluster.php3
By the way, when dragonfly manages to work with it's internal
ports system, can we rename you to 'Matt "Amiga Rules" Dillon'? ;)