Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Build failure on FreeBSD 7
From: Brad Penoff (penoff_at_[hidden])
Date: 2008-05-03 19:32:06


The small commit that Karol originally suggested was just pushed to
ompi-trunk. This just simply adds the appropriate header files for
FreeBSD (6.2, 6.3 and 7) to be able to compile.

https://svn.open-mpi.org/trac/ompi/changeset/18366

This didn't fix the hanging on the kevent call mentioned in this
thread, however, setting the environment variable EVENT_NOKQUEUE did
find a work-around. I'm not sure if that is the solution we want for
all FreeBSD platforms in the long term (requiring the user to set
particular environment variables for particular platforms), but for
now at least I can run the MTT tests that I need to (once it gets in a
nightly build).

Feel free to contact me if you would care to work together on another
solution. Or is it as simple as returning NULL from kq_init if
EVENT_NOKQUEUE is set or #if defined(__FreeBSD__) like the minor patch
below?

Thanks,
brad

--- opal/event/kqueue.c (revision 18366)
+++ opal/event/kqueue.c (working copy)
@@ -116,7 +116,11 @@
     struct kqop *kqueueop;

     /* Disable kqueue when this environment variable is set */
- if (getenv("EVENT_NOKQUEUE"))
+ if (getenv("EVENT_NOKQUEUE")
+#if defined(__FreeBSD__)
+ || 1
+#endif
+ )
         return (NULL);

     if (!(kqueueop = calloc(1, sizeof(struct kqop))))

On Thu, May 1, 2008 at 9:02 AM, Brad Penoff <penoff_at_[hidden]> wrote:
> I believe Karol's patch in the original mail in this thread adds the
> appropriate headers for openpty to be resolved when --enable-picky is
> supplied. Without --enable-picky, it's able to resolve it too, as the
> code is. However, even if it compiles, the call to kevent (line 177
> of opal/event/kqueue.c) still hangs, so this is more of the mystery...
>
> Would giving you access to a FreeBSD 7 machine be useful? Contact me
> off the list, if so and we'll try to sort something out. Or if you
> have any patches/suggestions you'd like to try to fix this, I could
> run them myself and let you know.
>
> Thanks,
> brad
>
>
>
> On Thu, May 1, 2008 at 5:51 AM, Jeff Squyres <jsquyres_at_[hidden]> wrote:
> > George -- did you get to make this fix?
> >
> > What header file is openpty declared in on FreeBSD 7? It should be
> > easy enough to add the right #include to that file.
> >
> >
> >
> > On Apr 29, 2008, at 7:45 PM, Brad Penoff wrote:
> >
> > > hey all,
> > >
> > > I was just configuring MTT to run some multihost tests on FreeBSD 7
> > > and I came across this same error you guys were, using the
> > > openmpi-1.3a1r18325.tar.gz trunk nightly tarball :
> > >
> > > kqueue.c:165: error: implicit declaration of function 'openpty'
> > >
> > > However, this error seems to only come up if I use --enable-picky to
> > > configure. Getting rid of --enable-picky results in a successful
> > > compilation. Any idea why that is? Should this be fixed in the long
> > > term?
> > >
> > > For now, I'm just adjusting my MTT runs to not have --enable-picky in
> > > the ompi_configure_arguments...
> > >
> > > brad
> > >
> > >
> > > 2008/4/11 George Bosilca <bosilca_at_[hidden]>:
> > >> That's good that you guys revive this thread, I almost forget about
> > >> it.
> > >>
> > >> The code you're referring, is not part of the libevent. It was one
> > >> of my
> > >> "fixes" around for problem on OS X (where kevent is not able to
> > >> work nicely
> > >> with pty). It works on MAC as the code trigger an error so there is
> > >> no need
> > >> for the timeout ... I'll make the corrections over the weekend.
> > >>
> > >> Thanks,
> > >> george.
> > >>
> > >>
> > >>
> > >> On Apr 11, 2008, at 7:39 PM, Karol Mroz wrote:
> > >>
> > >>> Hi, Jeff...
> > >>>
> > >>> This test was performed locally, yes. I'm short on machines at the
> > >>> moment
> > >> to perform any proper distributed tests.
> > >>>
> > >>> --
> > >>> Karol
> > >>>
> > >>> -----Original Message-----
> > >>> From: Jeff Squyres <jsquyres_at_[hidden]>
> > >>>
> > >>> Date: Fri, 11 Apr 2008 16:36:33
> > >>> To:Open MPI Developers <devel_at_[hidden]>
> > >>> Subject: Re: [OMPI devel] Build failure on FreeBSD 7
> > >>>
> > >>>
> > >>> This may depend on how you ran the app on FreeBSD -- did you run on
> > >>> the localhost only?
> > >>>
> > >>> We have/had a problem when running locally with regards to kevent --
> > >>> I'm not 100% sure if we've fixed it yet. Let me check...
> > >>>
> > >>>
> > >>> On Apr 5, 2008, at 1:53 AM, Karol Mroz wrote:
> > >>>
> > >>>> After digging a little deeper, it turns out that the kevent()
> > >>>> call in
> > >>>> opal/event/kquene.c:
> > >>>> if (kevent(kq,
> > >>>> kqueueop->changes, 1, kqueueop->events, NEVENT, NULL) !=
> > >>>> 1 ||
> > >>>> (int)kqueueop->events[0].ident != master ||
> > >>>> kqueueop->events[0].flags != EV_ERROR) {
> > >>>>
> > >>>> seems to hang in freebsd 7. Changing the NULL parameter to, lets
> > >>>> say
> > >>>> 1000, causes the function to return and print out the error
> > >>>> message:
> > >>>>
> > >>>> event_warn("%s: detected broken kqueue (failed delete); not
> > >> using
> > >>>> error %d (%s)", __func__, errno, strerror(errno));
> > >>>>
> > >>>> The simple non-blocking send/recv app used to test this then runs
> > >>>> to
> > >>>> completion. Compiling OpenMPI on linux and running this same app
> > >>>> produces no errors.
> > >>>>
> > >>>> Any ideas?
> > >>>>
> > >>>> Thanks.
> > >>>> --
> > >>>> Karol
> > >>>>
> > >>>>
> > >>>>
> > >>>> _______________________________________________
> > >>>> devel mailing list
> > >>>> devel_at_[hidden]
> > >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >>>>
> > >>>
> > >>>
> > >>> --
> > >>> Jeff Squyres
> > >>> Cisco Systems
> > >>>
> > >>> _______________________________________________
> > >>> devel mailing list
> > >>> devel_at_[hidden]
> > >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >>>
> > >>> _______________________________________________
> > >>> devel mailing list
> > >>> devel_at_[hidden]
> > >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >>>
> > >>
> > >>
> > >> _______________________________________________
> > >> devel mailing list
> > >> devel_at_[hidden]
> > >> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > >>
> > > _______________________________________________
> > > devel mailing list
> > > devel_at_[hidden]
> > > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >
> >
> > --
> > Jeff Squyres
> > Cisco Systems
> >
> > _______________________________________________
> > devel mailing list
> > devel_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >
> >
>