While trying to debug some other stuff, I discovered that opal_timer_linux_open() ends up setting the inexact floating point exception here:

     /* numer is in MHz - convert to Hz and make an integer */
     opal_timer_linux_freq = (opal_timer_t) cpu_f * 1000000;

I'm not sure if this is anything we should care about or not, but when linked to the pgf runtime you end up with the following warning output:

Warning: ieee_inexact is signaling

I tried to see if I could do the conversion without triggering this to no avail. One could avoid changing the state with:

#include <fenv.h>

     fecxept_t feflags
     fegetexceptflag(&feflags, FE_INEXACT);
     /* numer is in MHz - convert to Hz and make an integer */
     opal_timer_linux_freq = (opal_timer_t) cpu_f * 1000000;
     fesetexceptflag(&feflags, FE_INEXACT);

But I'm not sure this is worth the overhead. Not sure how often this code is called.

- Orion

--
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder Office                  FAX: 303-415-9702
3380 Mitchell Lane                       or...@nwra.com
Boulder, CO 80301                   http://www.nwra.com

Reply via email to