EV on AIX?

Marc Lehmann schmorp at schmorp.de
Fri Mar 23 14:02:05 CET 2012


On Thu, Mar 22, 2012 at 04:38:39PM -0600, Darin McBride <darin.mcbride at shaw.ca> wrote:
> uname -p reports "powerpc".  I see that present, but maybe you require gcc.  
> Since this is largely an IBM shop, I have xlC available for use.

ecb.h has no provisions for memory fences with xlC - somebody with knowledge
would first have to port it to xlC.

> > Easier would be to use a non-antique gcc version (e.g. 4.4), which should
> > have the relevant memory fences built-in, or llvm/clang.
> 
> I bet xlC is considered antique :-)  (Looks like xlC 10.1.0.2, but that's 
> probably not important.)

xlC is... not just considered antrique, it is one of those few vendor
compilers where I have vivid memories of - not positive ones :)

But that's not the point - I specifically meant gcc - a reasonably current
gcc version has support for memory fences that libev can pick up.

There is nothing wrong with antique compilers otherwise, unless they are
beyond broken, which is rare.

> > If neither is an option, and you are running on a single-cpu box, you can
> > disable memory fences entirely by compiling with -DECB_NO_SMP.
> 
> Definitely not running on a single CPU box.  I think it has 4 quad-core CPUs in 
> it.  Though I'm curious as to how much of an issue it is if I'm running 
> single-threaded (even if through Coro).

If you are running libev on only one core at a time, by using Coro threads
only for example, then -DECB_NO_SMP should do the trick .

ECB_NO_SMP means (here) that there is no need to synchronise caches
between cpus.

(when compiling EV, you can add it to the extra -D options, which also
tells you about using -DEV_NO_THREADS, which is the stronger version of
ECB_NO_SMP, but still good enough for Coro).

> > Any event loop you like and can get compiled, I guess.
> 
> Makes sense :-)  I just know that you have some recommendations in the AE 
> docs, but wasn't entirely sure how big of a deal it is.

Well, personally, I'd go for EV, and if that isn't available, and
otherwise I don't care much.

> > So, using the pure perl event loop on aix is definitely an option that
> > shouldn't lose out much.
> 
> Fair enough.  I won't worry about it too much, then, since I have more CPU 
> power than I need, and likely far too much RAM as well, since when I'm 
> running, usually nothing else is (and vice versa - when I'm not running, 
> usually *everything* else is).  Thanks!

Well, given the memory hog that perl in general is (tiny stuff such as
Digest::MD5 comes ion at 1MB ram on my box, even something as trivial as
use strict uses 275kb here), *that* extra memory is unlikely to become an
issue :(

-- 
                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_              http://www.deliantra.net
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at schmorp.de
      -=====/_/_//_/\_,_/ /_/\_\



More information about the anyevent mailing list