Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] new CRS component added (criu)
From: Adrian Reber (adrian_at_[hidden])
Date: 2014-02-08 16:49:47


On Fri, Feb 07, 2014 at 10:08:48PM +0000, Jeff Squyres (jsquyres) wrote:
> 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?).

I think I do not really understand configure.m4 and was happy to just
copy it from blcr. Especially what $2 and $3 mean and how they are
supposed to be used. I will try to simplify my configure.m4. Is there an
example which I can have a look at?

> 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?

Yes criu has introduced libcriu with the 1.1 release. It is used to
create RPCs to the criu process running as a service. I submitted a few
patches to criu to actually install the headers and libraries and
included it in the Fedora package:

https://admin.fedoraproject.org/updates/criu-1.1-4.fc20

This is what I am currently using to build against criu.

                Adrian