Sweet -- +1 for CRIU support!

FWIW, I see you modeled your configure.m4 off the blcr configure.m4, but I'd 
actually go with making it a bit simpler.  For example, I typically structure 
my configure.m4's like this (typed in mail client -- forgive mistakes...):

-----
   AS_IF([...some test....], [crs_criu_happy=1], [crs_criu_happy=0])
   # Only bother doing the next test if the previous one passed
   AS_IF([test $crs_criu_happy -eq 1 && ...next test....], 
         [crs_criu_happy=1], [crs_criu_happy=0])
   # Only bother doing the next test if the previous one passed
   AS_IF([test $crs_criu_happy -eq 1 && ...next test....], 
         [crs_criu_happy=1], [crs_criu_happy=0])

   ...etc...

   # Put a single execution of $2 and $3 at the end, depending on how the 
   # above tests go.  If a human asked for criu (e.g., --with-criu) and
   # we can't find criu support, that's a fatal error.
   AS_IF([test $crs_criu_happy -eq 1],
         [$2],
         [AS_IF([test "$with_criu" != "x" && "x$with_criu" != "xno"],
                [AC_MSG_WARN([You asked for CRIU support, but I can't find it.])
                 AC_MSG_ERROR([Cannot continue])],
                [$1])
          ])
-----

I note you have a stray $3 at the end of your configure.m4, too (it might 
supposed to be $2?).

Finally, I note you're looking for libcriu.  Last time I checked with the CRIU 
guys -- which was quite a while ago -- that didn't exist (but I put in my $0.02 
that OMPI would like to see such a userspace library).  I take it that libcriu 
now exists?





On Feb 7, 2014, at 4:46 PM, Adrian Reber <adr...@lisas.de> wrote:

> I have created a new CRS component using criu (criu.org) to support
> checkpoint/restart in Open MPI. My current patch only provides the
> framework and necessary configure scripts to detect and link against
> criu. With this patch orte-checkpoint can request a checkpoint and the
> new CRIU CRS component is used:
> 
> [dcbz:13766] orte_cr: init: orte_cr_init()
> [dcbz:13766] crs:criu: opal_crs_criu_prelaunch
> [dcbz:13766] crs:criu: opal_crs_criu_prelaunch
> [dcbz:13771] opal_cr: init: Verbose Level: 30
> [dcbz:13771] opal_cr: init: FT Enabled: true
> [dcbz:13771] opal_cr: init: Is a tool program: false
> [dcbz:13771] opal_cr: init: Debug SIGPIPE: 30 (False)
> [dcbz:13771] opal_cr: init: Checkpoint Signal: 10
> [dcbz:13771] opal_cr: init: FT Use thread: true
> [dcbz:13771] opal_cr: init: FT thread sleep: check = 0, wait = 100
> [dcbz:13771] opal_cr: init: C/R Debugging Enabled [False]
> [dcbz:13771] opal_cr: init: Checkpoint Signal (Debug): 20
> [dcbz:13771] opal_cr: init: Temp Directory: /tmp
> ...
> [dcbz:13772] orte_cr: coord: orte_cr_coord(Checkpoint)
> [dcbz:13772] orte_cr: coord_pre_ckpt: orte_cr_coord_pre_ckpt()
> [dcbz:13772] orte_cr: coord_post_ckpt: orte_cr_coord_post_ckpt()
> [dcbz:13772] ompi_cr: coord_post_ckpt: ompi_cr_coord_post_ckpt()
> [dcbz:13772] opal_cr: opal_cr_inc_core_ckpt: Take the checkpoint.
> [dcbz:13772] crs:criu: checkpoint(13772, ---)
> [dcbz:13772] crs:criu: criu_init_opts() returned 0
> [dcbz:13771] orte_cr: coord_post_ckpt: orte_cr_coord_post_ckpt()
> [dcbz:13771] ompi_cr: coord_post_ckpt: ompi_cr_coord_post_ckpt()
> [dcbz:13771] opal_cr: opal_cr_inc_core_ckpt: Take the checkpoint.
> [dcbz:13771] crs:criu: checkpoint(13771, ---)
> [dcbz:13771] crs:criu: criu_init_opts() returned 0
> ...
> [dcbz:13766] 13766: Checkpoint established for process [55729,0].
> [dcbz:13771] ompi_cr: coord: ompi_cr_coord(Running)
> [dcbz:13771] orte_cr: coord: orte_cr_coord(Running)
> [dcbz:13766] 13766: Successfully restarted process [55729,0].
> [dcbz:13772] ompi_cr: coord: ompi_cr_coord(Running)
> [dcbz:13772] orte_cr: coord: orte_cr_coord(Running)
> 
> It seems the C/R code basically works again and now needs to be filled
> with the actual code to take checkpoints using criu.
> 
> The patch I want to check in is available at:
> 
> https://lisas.de/git/?p=open-mpi.git;a=commitdiff;h=7e0c7c940705cc572242097ff53f9e0ee6db11ea
> 
> The patch only creates files in opal/mca/crs/criu and does not touch any
> other code.
> 
>               Adrian
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to