Building Mnemosyne

Building User-mode Mnemosyne (usermode)

Conventions used below:

Prerequisites

Note:
Mnemosyne was tested on a 64-bit platform.

Preparing the Source Tree

Then do the following modification in the Mnemosyne copy of itmuser.h:

Building

Configuration switches of interest: For all configuration switches please invoke: scons --help

Configuration variables of interest:

For all configuration variables please refer to $MNEMOSYNE/usermode/library/configuration/default

Ensure that mainEnv['ICC_DIR'] in $MNEMOSYNE/usermode/SConstruct points to the directory where ICC is installed:

For example, to build Mnemosyne for PCM write latency of 1000ns, invoke SCons in $MNEMOSYNE/usermode:

% cd $MNEMOSYNE/usermode
% scons M_PCM_EMULATE_LATENCY=True M_PCM_LATENCY_WRITE=1000

All generated objects and binaries are placed under $MNEMOSYNE/usermode/build.

Note:
It is important to compile with framepointers on using: -fno-omit-frame-pointer. SCons files take care of this but if you are going to use Mnemosyne with your own application then make sure you build the application with framepointers.

Currently we use GCC to build the TM library as libatomic_ops relies on GCC atomic intrinsics such as __sync_add_and_fetch_4, which are not available in the version of ICC we use.

Todo:
Currently we use GCC to build the TM library as libatomic_ops relies on GCC atomic intrinsics such as __sync_add_and_fetch_4, which are not available in the version of ICC we use. We would like to fix this issue.

Building Kernel-mode Mnemosyne (kernelmode)

Building Linux Extensions

Building our Linux extensions is necessary if you want to have persistent mappings that survive system reboot without having to issue fsync. If you do not care about system crashes then you can always issue an fsync and run mnemosyne on top of a vanilla kernel. In that case you just need to build user-mode Mnemosyne with:

MCORE_KERNEL_PMAP = False

Building Kernel

Switch to $MNEMOSYNE/kernelmode/linux-2.6.33 and follow the same usual procedure when building a Linux vanilla kernel.

Building Kernel

Switch to $MNEMOSYNE/kernelmode/scmmap and invoke make

% cd $MNEMOSYNE/kernelmode/scmmap
% make

Building PCM-disk

Switch to $MNEMOSYNE/kernelmode/pcmdisk.

The provided makefile may be used to build the kernel-module. Please make sure the makefile variable $KERNEL_SOURCE points to the right kernel source tree.

Several parameters may be changed to configure PCM-disk as needed:


Generated on Sat Apr 23 11:43:36 2011 for Mnemosyne by  doxygen 1.4.7