• 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
  • 相关阅读:
    10天学安卓-第八天
    10天学安卓-第七天
    10天学安卓-第六天
    10天学安卓-第五天
    10天学安卓-第四天
    10天学安卓-第三天
    透过 Cucumber 学习 BDD
    应对复杂软件的思考
    管理任务就是管理时间
    Running Dubbo On Spring Boot
  • 原文地址:https://www.cnblogs.com/codestub/p/2144006.html
Copyright © 2020-2023  润新知