Sukadev Bhattiprolu wrote: > lxc-checkpoint, lxc-restart in the LXC source tree are currently stubs. > Following set of patches, when applied to LXC and built with USERCR as > described below, enable enable lxc-checkpoint and lxc-restart of some > simple containers > Hi Suka, Thanks for the patchset. Before going further and comment the patchset and the TODOs, I would like to succeed to checkpoint something. Despite your detailed informations, I was not able to checkpoint 'sleep'. I am sure I am missing something or something is missing :) [ ... ] Here is the different steps I did: 1 - downloaded the git tree at git://www.linux-cr.org/pub/git/linux-cr 2 - compiled the kernel making sure I have the following kernel config options > grep CHECKPOINT .config CONFIG_CHECKPOINT_SUPPORT=y CONFIG_SYSVIPC_CHECKPOINT=y CONFIG_CHECKPOINT=y CONFIG_CHECKPOINT_DEBUG=y and of course the needed namespaces. 3 - The level of the code is the commit 3522c57a9ec6f08a129a78322318abcb4467db28 > 1. Build USERCR > > $ cd /root > > $ git-clone git://git.ncl.cs.columbia.edu/pub/git/user-cr.git user-cr > > $ cd user-cr > > $ git-checkout ckpt-v20-dev > > Tested with commit e275f77e4a82d228c1df14dbeb691342e32cdac2 > as HEAD. > > # Apply following two patches: > > https://lists.linux-foundation.org/pipermail/containers/2010-March/024037.html > https://lists.linux-foundation.org/pipermail/containers/2010-March/024038.html > > $ cd /root/user-cr > > $ KERNELSRC=/root/linux-2.6/ make > > Build USERCR by pointing to corresponding kernel-source. > This should create restart.o and checkpoint.o needed by LXC. > 4 - followed these steps ^^^^ I had to compile user-cr with the "-fPIC" flags in order to link lxc and user-cr. /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: /home/dlezcano/work/src/user-cr/checkpoint.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /home/dlezcano/work/src/user-cr/checkpoint.o: could not read symbols: Bad value > 2. Build/install LXC > > $ cd /root/lxc.git > > Apply attached patches to LXC (I tested with these patches applied > to commit 9ea8066aa67b808f71f46e346bd7a215e2a355f3) > Ok, I applied the patchset with quilt. It looks like Michel used git which is stricter than quilt. I fixed the typo in configure.ac > 3. Checkpoint/restart a simple LXC container > > $ lxc-execute --name foo --rcfile lxc-no-netns.conf -- /bin/sleep 1000 > > $ lxc-checkpoint --name foo --image /root/lxc-foo.ckpt > Ok, I reach this point. But the checkpoint fails always with EINVAL and the statefile is empty. Digging a bit in the userspace + kernel code, I was wondering if the user flags match ? Thanks in advance. -- Daniel ps : I noticed the application is not thawed in the error code path, so I have to resume it manually everytime the checkpoint fails. _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers