brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · 54401b2 Raw
69 lines · plain
1===================2Legacy instructions3===================4 5The arm64 port of the Linux kernel provides infrastructure to support6emulation of instructions which have been deprecated, or obsoleted in7the architecture. The infrastructure code uses undefined instruction8hooks to support emulation. Where available it also allows turning on9the instruction execution in hardware.10 11The emulation mode can be controlled by writing to sysctl nodes12(/proc/sys/abi). The following explains the different execution13behaviours and the corresponding values of the sysctl nodes -14 15* Undef16    Value: 017 18  Generates undefined instruction abort. Default for instructions that19  have been obsoleted in the architecture, e.g., SWP20 21* Emulate22    Value: 123 24  Uses software emulation. To aid migration of software, in this mode25  usage of emulated instruction is traced as well as rate limited26  warnings are issued. This is the default for deprecated27  instructions, .e.g., CP15 barriers28 29* Hardware Execution30    Value: 231 32  Although marked as deprecated, some implementations may support the33  enabling/disabling of hardware support for the execution of these34  instructions. Using hardware execution generally provides better35  performance, but at the loss of ability to gather runtime statistics36  about the use of the deprecated instructions.37 38The default mode depends on the status of the instruction in the39architecture. Deprecated instructions should default to emulation40while obsolete instructions must be undefined by default.41 42Note: Instruction emulation may not be possible in all cases. See43individual instruction notes for further information.44 45Supported legacy instructions46-----------------------------47* SWP{B}48 49:Node: /proc/sys/abi/swp50:Status: Obsolete51:Default: Undef (0)52 53* CP15 Barriers54 55:Node: /proc/sys/abi/cp15_barrier56:Status: Deprecated57:Default: Emulate (1)58 59* SETEND60 61:Node: /proc/sys/abi/setend62:Status: Deprecated63:Default: Emulate (1)*64 65  Note: All the cpus on the system must have mixed endian support at EL066  for this feature to be enabled. If a new CPU - which doesn't support mixed67  endian - is hotplugged in after this feature has been enabled, there could68  be unexpected results in the application.69