MESI Caching work start (was Re: caching and userapi)

Antonio Vargas wind at cocodriloo.com
Fri Jul 18 16:01:41 PDT 2003


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?
> 
> 					-Matt
> 					Matthew Dillon 
> 					<dillon at xxxxxxxxxxxxx>

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'? ;)

Greets, Antonio.





More information about the Kernel mailing list