2 # Feature name: membarrier-sync-core
3 # Kconfig: ARCH_HAS_MEMBARRIER_SYNC_CORE
4 # description: arch supports core serializing membarrier
6 # Architecture requirements
10 # Rely on implicit context synchronization as a result of exception return
11 # when returning from IPI handler, and when returning to user-space.
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),
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 -----------------------
31 -----------------------
42 | microblaze: | TODO |
57 -----------------------