H. Peter Anvin hpa at zytor.com
Wed May 31 21:59:10 PDT 2006

Jacques Mony wrote:
> Hi,
> I looking for a large-scale persistence solution for the Unununium
> operating system (unununium.org). At the moment, I do consider using
> the Linux kernel as the kernel, but build something else over it. One
> of the key feature of the OS would be persistence. However, up to now,
> the persistence solutions we have found were maily based on whole
> process checkpointing. While this is not so bad, we are considering a
> way to make persistent only data.
> We want to run everything into one single process... but might use many 
> threads.
> Do you think lpsm can help there? We would need to manage the whole
> memory area with it... and probably more than the physical RAM, as we
> don't want to use a file system anymore.

Well, LPSM as it stands today isn't thread-safe; however, I do believe 
it would be reasonably straightforward to add the thread support.  The 
addition of futexes in the Linux kernel means that using POSIX locks 
isn't the performance killer it once was.

The easiest way to do it is to add a single lock around the allocation 
functions, and a single lock for the SEGV handler plus the checkpoint 
fork and cleanup.

This is obviously not ideal for scalability, but should get you off the 
ground.  From that point it's easier to tweak the lock granularity; 
similar to how you make a uniprocessor kernel SMP-capable.


More information about the LPSM mailing list