[PATCH] [RFC] Emulate "lwsync" to run standard user land on e500 cores

Scott Wood scottwood at freescale.com
Sat Oct 19 03:38:41 EST 2013


On Fri, 2013-10-18 at 09:38 +0200, Wolfgang Denk wrote:
> Default Debian PowerPC doesn't work on e500 because the code contains
> "lwsync" instructions, which are unsupported on this core.  As a
> result, applications using this will crash with an "unhandled signal 4"
> "Illegal instruction" error.
> 
> As a work around we add code to emulate this insn.  This is expensive
> performance-wise, but allows to run standard user land code.
> 
> Signed-off-by: Wolfgang Denk <wd at denx.de>
> Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Cc: Scott Wood <scottwood at freescale.com>
> ---
> I am aware that the clean solution to the problem is to build user
> space with compiler options that match the target architecture.
> However, sometimes this is just too much effort.
> 
> Also, of course the performance of such an emulation sucks. But the
> the occurrence of such instructions is so rare that no significant
> slowdown can be oserved.
> 
> I'm not sure if this should / could go into mainline.  I'm posting it
> primarily so it can be found should anybody else need this.
> - wd
> 
>  arch/powerpc/kernel/traps.c | 7 +++++++
>  1 file changed, 7 insertions(+)

There's already been a patch posted for this:
http://patchwork.ozlabs.org/patch/256747/

I plan to apply it for my next pull request.

-Scott





More information about the Linuxppc-dev mailing list