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
  • 相关阅读:
    leetcode — simplify-path
    leetcode — climbing-stairs
    leetcode — sqrtx
    leetcode — text-justification
    leetcode — add-binary
    leetcode — plus-one
    leetcode — valid-number
    leetcode — minimum-path-sum
    leetcode — unique-paths-ii
    四维偏序 CDQ套CDQ
  • 原文地址:https://www.cnblogs.com/codestub/p/2144006.html
Copyright © 2011-2022 走看看