• Arnd Bergmann's avatar
    [POWERPC] disable floating point exceptions for init · ddf5f75a
    Arnd Bergmann authored
    Floating point exceptions should not be enabled by default,
    as this setting impacts the performance on some CPUs, in
    particular the Cell BE. Since the bits are inherited from
    parent processes, the place to change the default is the
    thread struct used for init.
    
    glibc sets this up correctly per thread in its fesetenv
    function, so user space should not be impacted by this
    setting. None of the other common libc implementations
    (uClibc, dietlibc, newlib, klibc) has support for fp
    exceptions, so they are unlikely to be hit by this either.
    
    There is a small risk that somebody wrote their own
    application that manually sets the fpscr bits instead
    of calling fesetenv, without changing the MSR bits as well.
    Those programs will break with this change.
    
    It probably makes sense to change glibc in the future
    to be more clever about FE bits, so that when running
    on a CPU where this is expensive, it disables exceptions
    ASAP, while it keeps them enabled on CPUs where running
    with exceptions on is cheaper than changing the state
    often.
    Signed-off-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    ddf5f75a
processor.h 8.08 KB