treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / features / sched / membarrier-sync-core / arch-support.txt
blob8a521a622966ab6fd082d8b618e20243ae159421
2 # Feature name:          membarrier-sync-core
3 #         Kconfig:       ARCH_HAS_MEMBARRIER_SYNC_CORE
4 #         description:   arch supports core serializing membarrier
6 # Architecture requirements
8 # * arm/arm64
10 # Rely on implicit context synchronization as a result of exception return
11 # when returning from IPI handler, and when returning to user-space.
13 # * x86
15 # x86-32 uses IRET as return from interrupt, which takes care of the IPI.
16 # However, it uses both IRET and SYSEXIT to go back to user-space. The IRET
17 # instruction is core serializing, but not SYSEXIT.
19 # x86-64 uses IRET as return from interrupt, which takes care of the IPI.
20 # However, it can return to user-space through either SYSRETL (compat code),
21 # SYSRETQ, or IRET.
23 # Given that neither SYSRET{L,Q}, nor SYSEXIT, are core serializing, we rely
24 # instead on write_cr3() performed by switch_mm() to provide core serialization
25 # after changing the current mm, and deal with the special case of kthread ->
26 # uthread (temporarily keeping current mm into active_mm) by issuing a
27 # sync_core_before_usermode() in that specific case.
29     -----------------------
30     |         arch |status|
31     -----------------------
32     |       alpha: | TODO |
33     |         arc: | TODO |
34     |         arm: |  ok  |
35     |       arm64: |  ok  |
36     |         c6x: | TODO |
37     |        csky: | TODO |
38     |       h8300: | TODO |
39     |     hexagon: | TODO |
40     |        ia64: | TODO |
41     |        m68k: | TODO |
42     |  microblaze: | TODO |
43     |        mips: | TODO |
44     |       nds32: | TODO |
45     |       nios2: | TODO |
46     |    openrisc: | TODO |
47     |      parisc: | TODO |
48     |     powerpc: | TODO |
49     |       riscv: | TODO |
50     |        s390: | TODO |
51     |          sh: | TODO |
52     |       sparc: | TODO |
53     |          um: | TODO |
54     |   unicore32: | TODO |
55     |         x86: |  ok  |
56     |      xtensa: | TODO |
57     -----------------------