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 --- |