Commit | Line | Data |
---|---|---|
6a546c7e MD |
1 | # |
2 | # Feature name: membarrier-sync-core | |
3 | # Kconfig: ARCH_HAS_MEMBARRIER_SYNC_CORE | |
4 | # description: arch supports core serializing membarrier | |
5 | # | |
6 | # Architecture requirements | |
7 | # | |
e7615c92 | 8 | # * arm/arm64/powerpc/s390 |
6a546c7e | 9 | # |
e69244d2 WD |
10 | # Rely on implicit context synchronization as a result of exception return |
11 | # when returning from IPI handler, and when returning to user-space. | |
6a546c7e MD |
12 | # |
13 | # * x86 | |
14 | # | |
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. | |
18 | # | |
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. | |
22 | # | |
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. | |
28 | # | |
29 | ----------------------- | |
30 | | arch |status| | |
31 | ----------------------- | |
32 | | alpha: | TODO | | |
33 | | arc: | TODO | | |
e69244d2 | 34 | | arm: | ok | |
6a546c7e | 35 | | arm64: | ok | |
8a5aaf97 | 36 | | csky: | TODO | |
6a546c7e MD |
37 | | hexagon: | TODO | |
38 | | ia64: | TODO | | |
cc8c418b | 39 | | loongarch: | TODO | |
6a546c7e | 40 | | m68k: | TODO | |
6a546c7e MD |
41 | | microblaze: | TODO | |
42 | | mips: | TODO | | |
6a546c7e MD |
43 | | nios2: | TODO | |
44 | | openrisc: | TODO | | |
45 | | parisc: | TODO | | |
2384b36f | 46 | | powerpc: | ok | |
7156fc29 | 47 | | riscv: | TODO | |
e7615c92 | 48 | | s390: | ok | |
6a546c7e MD |
49 | | sh: | TODO | |
50 | | sparc: | TODO | | |
6a546c7e | 51 | | um: | TODO | |
6a546c7e MD |
52 | | x86: | ok | |
53 | | xtensa: | TODO | | |
54 | ----------------------- |