sync.h (8dd06ef34b6e2f41b29fbf5fc1663780f2524285) | sync.h (2f9060b1db4aa2c21c248e34476d8936a2b69cf6) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2#ifndef __MIPS_ASM_SYNC_H__ 3#define __MIPS_ASM_SYNC_H__ 4 5/* 6 * sync types are defined by the MIPS64 Instruction Set documentation in Volume 7 * II-A of the MIPS Architecture Reference Manual, which can be found here: 8 * --- 5 unchanged lines hidden (view full) --- 14 * completed & often involve stalling the CPU pipeline to do so. 15 * 16 * 2) Ordering barriers, which only ensure that affected memory operations 17 * won't be reordered in the CPU pipeline in a manner that violates the 18 * restrictions imposed by the barrier. 19 * 20 * Ordering barriers can be more efficient than completion barriers, since: 21 * | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2#ifndef __MIPS_ASM_SYNC_H__ 3#define __MIPS_ASM_SYNC_H__ 4 5/* 6 * sync types are defined by the MIPS64 Instruction Set documentation in Volume 7 * II-A of the MIPS Architecture Reference Manual, which can be found here: 8 * --- 5 unchanged lines hidden (view full) --- 14 * completed & often involve stalling the CPU pipeline to do so. 15 * 16 * 2) Ordering barriers, which only ensure that affected memory operations 17 * won't be reordered in the CPU pipeline in a manner that violates the 18 * restrictions imposed by the barrier. 19 * 20 * Ordering barriers can be more efficient than completion barriers, since: 21 * |
22 * a) Ordering barriers only require memory access instructions which preceed | 22 * a) Ordering barriers only require memory access instructions which precede |
23 * them in program order (older instructions) to reach a point in the 24 * load/store datapath beyond which reordering is not possible before 25 * allowing memory access instructions which follow them (younger 26 * instructions) to be performed. That is, older instructions don't 27 * actually need to complete - they just need to get far enough that all 28 * other coherent CPUs will observe their completion before they observe 29 * the effects of younger instructions. 30 * --- 179 unchanged lines hidden --- | 23 * them in program order (older instructions) to reach a point in the 24 * load/store datapath beyond which reordering is not possible before 25 * allowing memory access instructions which follow them (younger 26 * instructions) to be performed. That is, older instructions don't 27 * actually need to complete - they just need to get far enough that all 28 * other coherent CPUs will observe their completion before they observe 29 * the effects of younger instructions. 30 * --- 179 unchanged lines hidden --- |