Removal of NWFPE in its entirety, and VFP emulation code

Måns Rullgård mans at mansr.com
Wed Apr 10 07:58:09 EDT 2013


Russell King - ARM Linux <linux at arm.linux.org.uk> writes:

> On Wed, Apr 10, 2013 at 12:18:19PM +0100, Måns Rullgård wrote:
>> Russell King - ARM Linux <linux at arm.linux.org.uk> writes:
>> 
>> > The situation with VFP is likely less disruptive - only instructions
>> > which aren't implemented in hardware (or, for example, if you ask for
>> > inexact exceptions to be enabled) which are bounced to the software
>> > support code will be affected.  I think OMAP should get away unscathed,
>> > but ARM's implementation will bounce if inexact exceptions are enabled
>> 
>> What do you mean by this?  OMAP uses ARM's cores.
>
> OMAP's VFP reports that it never traps to support code for VFP instructions,
> so the emulation code is never used on OMAP.

That is true for OMAP2 (ARM1136/VFP11) and OMAP3 (Cortex-A8).  OMAP4
(Cortex-A9) and OMAP5 (Cortex-A15) both trap on vector operations.

>> > or in a few corner cases.  Qualcomm is likely to be the worst affected
>> > by this.
>> >
>> > Will Deacon has tested debian armhf on a Cortex-A15 with VFP emulation
>> > support removed, which boots successfully.
>> 
>> Cortex-A9 and later lack hardware support for VFP vector operations.
>> Any code using these will fail to run without the software emulation.
>> Of course such code is already horribly slow on these cores and should
>> be fixed, so perhaps this is not such a terrible thing.
>
> It's probably not "horribly slow" because unlike NWFPE, I went to great
> efforts through my derivation of softfloat to ensure that it was as fast
> and efficient as possible on ARM hardware.

It's several orders of magnitude slower than not using the vector
operations.  This is as one would expect when taking a kernel trap on
almost every instruction.

-- 
Måns Rullgård
mans at mansr.com



More information about the linux-arm-kernel mailing list