On Mon, 2017-09-18 at 10:15 +0100, Edmund Grimley Evans wrote: > > But it did remind me that on some platforms writing "2" to > > /proc/sys/abi/cp15_barrier will enable hw support for these > > instructions, since some platforms do support them even thought > > they > > are deprecated. It's certainly worth investigating what your > > hardware > > supports. > > Not necessarily disagreeing with the content of that but the > terminology seems wrong: I don't have a reference to hand but I'm > fairly sure that hardware is *required* to support a "deprecated" > instruction. "Deprecated" usually means something like: unless you > know what you're doing you probably shouldn't use this feature > because > it might perform badly and it might not be available in a future > version (of the Arm architecture in this case).
In principal I agree with your interpretation of "Deprecated" but the wording in Linux's Documentation/arm64/legacy_instructions.txt which documents this stuff is: * Hardware Execution Value: 2 Although marked as deprecated, some implementations may support the enabling/disabling of hardware support for the execution of these instructions. Using hardware execution generally provides better performance, but at the loss of ability to gather runtime statistics about the use of the deprecated instructions. Which in "some implementations may" at least implies the possibility that some hardware may not support these instructions. I don't seem to be able to download an ARM ARM right now to see what the actual wording used there is. Ian.