Patchwork powerpc/85xx: enable the math emulation for the corenet64_smp_defconfig

login
register
mail settings
Submitter Kevin Hao
Date July 10, 2013, 1:49 a.m.
Message ID <1373420992-25167-1-git-send-email-haokexin@gmail.com>
Download mbox | patch
Permalink /patch/257955/
State Accepted, archived
Commit 195c4940f7682bdd3f5477e37b7c0183b82b3b71
Headers show

Comments

Kevin Hao - July 10, 2013, 1:49 a.m.
I got the following error on my t4240qds board.
  ntpd[2713]: unhandled signal 4 at 0fd5b448 nip 0fd5b448 lr 0fd5b424 code 30001

The root cause is that the float point instruction 'fsqrt' is used.
But this instruction is not implemented on e6500 core. Even this
does seem a gcc bug, I would like to enable the math emulation
in the kernel to workaround this kind of issue.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
 arch/powerpc/configs/corenet64_smp_defconfig | 1 +
 1 file changed, 1 insertion(+)
Kevin Hao - July 11, 2013, 9:21 a.m.
On Wed, Jul 10, 2013 at 04:40:03PM -0500, Scott Wood wrote:
> On 07/09/2013 08:49:52 PM, Kevin Hao wrote:
> >I got the following error on my t4240qds board.
> >  ntpd[2713]: unhandled signal 4 at 0fd5b448 nip 0fd5b448 lr
> >0fd5b424 code 30001
> >
> >The root cause is that the float point instruction 'fsqrt' is used.
> >But this instruction is not implemented on e6500 core. Even this
> >does seem a gcc bug, I would like to enable the math emulation
> >in the kernel to workaround this kind of issue.
> 
> I'll apply this, but we should add PPC_WARN_EMULATED to math-emu so
> that people know when their toolchain is emitting things that
> require emulation.

Sure.

> 
> It'd also be nice if we had an option to only include the portions
> of math-emu that are known to be missing in some CPUs (excluding
> CPUs that are missing the entire FPU, of course).  Besides its
> effect on kernel image size, in my experience math-emu adds a
> non-trivial amount of time to a kernel build.

Sounds reasonable. I will give it a try.

Thanks,
Kevin

> 
> -Scott
David Laight - July 11, 2013, 10:04 a.m.
> > It'd also be nice if we had an option to only include the portions
> > of math-emu that are known to be missing in some CPUs (excluding
> > CPUs that are missing the entire FPU, of course).  Besides its
> > effect on kernel image size, in my experience math-emu adds a
> > non-trivial amount of time to a kernel build.
> 
> Sounds reasonable. I will give it a try.

It also ought to be possible to use the FPU when emulating the
missing instructions - rather than using the full 'soft' FPU.

	David
Kevin Hao - July 11, 2013, 10:14 a.m.
On Thu, Jul 11, 2013 at 11:04:06AM +0100, David Laight wrote:
> > > It'd also be nice if we had an option to only include the portions
> > > of math-emu that are known to be missing in some CPUs (excluding
> > > CPUs that are missing the entire FPU, of course).  Besides its
> > > effect on kernel image size, in my experience math-emu adds a
> > > non-trivial amount of time to a kernel build.
> > 
> > Sounds reasonable. I will give it a try.
> 
> It also ought to be possible to use the FPU when emulating the
> missing instructions - rather than using the full 'soft' FPU.

Yes, it is another option. But it may seem a bit risky to do these
floating point arithmetic in kernel space. Do we really want do that?

Thanks,
Kevin

> 
> 	David
> 
> 
>

Patch

diff --git a/arch/powerpc/configs/corenet64_smp_defconfig b/arch/powerpc/configs/corenet64_smp_defconfig
index 6c8b020..b5408dc 100644
--- a/arch/powerpc/configs/corenet64_smp_defconfig
+++ b/arch/powerpc/configs/corenet64_smp_defconfig
@@ -27,6 +27,7 @@  CONFIG_P5040_DS=y
 CONFIG_T4240_QDS=y
 # CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
 CONFIG_BINFMT_MISC=m
+CONFIG_MATH_EMULATION=y
 CONFIG_FSL_IFC=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_PCI_MSI=y