entry.rst (4f2c0a4acffbec01079c28f839422e64ddeff004) entry.rst (da51bbcdbace8f43adf6066934c3926b656376e5)
1Entry/exit handling for exceptions, interrupts, syscalls and KVM
2================================================================
3
4All transitions between execution domains require state updates which are
5subject to strict ordering constraints. State updates are required for the
6following:
7
8 * Lockdep

--- 4 unchanged lines hidden (view full) ---

13
14The update order depends on the transition type and is explained below in
15the transition type sections: `Syscalls`_, `KVM`_, `Interrupts and regular
16exceptions`_, `NMI and NMI-like exceptions`_.
17
18Non-instrumentable code - noinstr
19---------------------------------
20
1Entry/exit handling for exceptions, interrupts, syscalls and KVM
2================================================================
3
4All transitions between execution domains require state updates which are
5subject to strict ordering constraints. State updates are required for the
6following:
7
8 * Lockdep

--- 4 unchanged lines hidden (view full) ---

13
14The update order depends on the transition type and is explained below in
15the transition type sections: `Syscalls`_, `KVM`_, `Interrupts and regular
16exceptions`_, `NMI and NMI-like exceptions`_.
17
18Non-instrumentable code - noinstr
19---------------------------------
20
21Most instrumentation facilities depend on RCU, so intrumentation is prohibited
21Most instrumentation facilities depend on RCU, so instrumentation is prohibited
22for entry code before RCU starts watching and exit code after RCU stops
23watching. In addition, many architectures must save and restore register state,
24which means that (for example) a breakpoint in the breakpoint entry code would
25overwrite the debug registers of the initial breakpoint.
26
27Such code must be marked with the 'noinstr' attribute, placing that code into a
28special section inaccessible to instrumentation and debug facilities. Some
29functions are partially instrumentable, which is handled by marking them

--- 250 unchanged lines hidden ---
22for entry code before RCU starts watching and exit code after RCU stops
23watching. In addition, many architectures must save and restore register state,
24which means that (for example) a breakpoint in the breakpoint entry code would
25overwrite the debug registers of the initial breakpoint.
26
27Such code must be marked with the 'noinstr' attribute, placing that code into a
28special section inaccessible to instrumentation and debug facilities. Some
29functions are partially instrumentable, which is handled by marking them

--- 250 unchanged lines hidden ---