Comment 4 for bug 507416

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

The patch looks sensible, and appears to work for me on Babbage 2.0.

Can someone else please test on Babbage 3.0?

Execution of NEON instructions and NEON context switching still appear to work OK on Babbage 2.0: See the attachment:
$ gcc -g -o neon-check neon-check.s
$ gcc -g -o neon-probe neon-probe.s
$ ./neon-check &
$ ./neon-probe &

(If you're not using the lucid tools, you may need extra flags, such as -march=armv7-a -mfpu-neon)

neon-check writes known values into some NEON registers and then loops forever, checking that the registers do not change.
neon-probe writes different values into the NEON registers, trying to provoke a failure.

Both processes should run forever if NEON instructions can be executed and context switching is working properly.

If CONFIG_NEON=n, neon-check should SIGILL immediately (on the standard karmic or jaunty kernel for example)

If context switching corruption is detected, neon-check should print an error message and terminate prematurely. (This may currently happen on Babbage 3.0 while https://bugs.launchpad.net/ubuntu/+source/linux-fsl-imx51/+bug/507503 remains unfixed. However, the test is not exhaustive; not all NEON registers are checked for corruption. The test could easily be extended however.)