目录
利用GCC编译器对齐属性 __attribute__((__aligned__(n))),利用处理器的缓存提高程序的执行速度;
1、以 4 个下划线开头的宏 cacheline_aligned : 对齐到 一级缓存行的长度 。
- #ifndef —cacheline_aligned
- #define —cacheline aligned _attribute (( _aligned_ (SMP CACHE_BYTES)))
- #endif
2、以四个下划线开头的宏____cacheline_aligned_in_smp:在对称处理器系统中等价于宏____cacheline_aligned,在单处理器中是空的宏。
- #ifndef cacheline aligned_in smp
- #ifdef CONFIG_SMP
- #define _ cacheline_aligned in smp _cacheline aligned
- #else
- #define cacheline_aligned in smp
- #endif /* CONFIG SMP */
- #endif
3、
以两个下划线开头的宏_cacheline_aligned: 对齐到一级缓存行的长度,并且把变
量放在 ".data..cacheline_aligned" 节中。
- #ifndef _ cacheline_aligned
- #define _ cachel ine_al igned \
- __attribute ((_ aligned (SMP CACHE BYTES) , \
- __section_ (".data .. cacheline_aligned" )))
- #endif /* _ cacheline_aligned */
4、以两个下划线开头的宏__cacheline_aligned_in_smp: 在对称多处理器系统中等价于宏__cacheline_aligned, 在单处理器系统中是空的宏。
-
-
- #ifndef _ cacheline_aligned_in smp
- #ifdef CONFIG_SMP
- #define _ cacheline_aligned in srnp
- #else
- #define _ cacheline_aligned in srnp
- #endif /* CONFIG_SMP */
- #endif
学习链接:
参考
https://course.0voice.com/v1/course/intro?courseId=2&agentId=0