zoukankan      html  css  js  c++  java
  • linux网络源码分析(1)

    今天在分析linux源码时, 看到net_device{}中有个____cacheline_aligned_in_smp.

    ____cacheline_aligned_in_smp在include/linux/cache.h中定义:

    #ifndef ____cacheline_aligned
    #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
    #endif

    #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

    #ifndef __cacheline_aligned
    #define __cacheline_aligned \
    __attribute__((__aligned__(SMP_CACHE_BYTES), \
    __section__(
    ".data.cacheline_aligned")))
    #endif /* __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

    /*
    * The maximum alignment needed for some critical structures
    * These could be inter-node cacheline sizes/L3 cacheline
    * size etc. Define this in asm/cache.h for your arch
    */
    #ifndef INTERNODE_CACHE_SHIFT
    #define INTERNODE_CACHE_SHIFT L1_CACHE_SHIFT
    #endif

    #if !defined(____cacheline_internodealigned_in_smp)
    #if defined(CONFIG_SMP)
    #define ____cacheline_internodealigned_in_smp \
    __attribute__((__aligned__(
    1 << (INTERNODE_CACHE_SHIFT))))
    #else
    #define ____cacheline_internodealigned_in_smp
    #endif
    #endif
  • 相关阅读:
    理解java的三大特性之封装
    特征学习
    Java类编译、加载、和执行
    榜样
    组合学习模型
    python的re模块详解
    python的argpare和click模块详解
    vue的组件
    vue的表单输入绑定
    vue的事件处理梳理
  • 原文地址:https://www.cnblogs.com/codestub/p/2144006.html
Copyright © 2011-2022 走看看