[POWERPC] disable floating point exceptions for init
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: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
72abd54035
commit
ddf5f75a16
1 changed files with 1 additions and 1 deletions
|
@ -190,7 +190,7 @@ struct thread_struct {
|
|||
.fs = KERNEL_DS, \
|
||||
.fpr = {0}, \
|
||||
.fpscr = { .val = 0, }, \
|
||||
.fpexc_mode = MSR_FE0|MSR_FE1, \
|
||||
.fpexc_mode = 0, \
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue