~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/arch/arm/swp_emulation.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
  2 ---------------------------------------------------------------------
  3 
  4 ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommends
  5 moving to the load-locked/store-conditional instructions LDREX and STREX.
  6 
  7 ARMv7 multiprocessing extensions introduce the ability to disable these
  8 instructions, triggering an undefined instruction exception when executed.
  9 Trapped instructions are emulated using an LDREX/STREX or LDREXB/STREXB
 10 sequence. If a memory access fault (an abort) occurs, a segmentation fault is
 11 signalled to the triggering process.
 12 
 13 /proc/cpu/swp_emulation holds some statistics/information, including the PID of
 14 the last process to trigger the emulation to be invocated. For example::
 15 
 16   Emulated SWP:         12
 17   Emulated SWPB:                0
 18   Aborted SWP{B}:               1
 19   Last process:         314
 20 
 21 
 22 NOTE:
 23   when accessing uncached shared regions, LDREX/STREX rely on an external
 24   transaction monitoring block called a global monitor to maintain update
 25   atomicity. If your system does not implement a global monitor, this option can
 26   cause programs that perform SWP operations to uncached memory to deadlock, as
 27   the STREX operation will always fail.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php