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
  • 相关阅读:
    Cookie和Seesion
    Forms组件
    分页器组件
    关于Django的Ajax操作
    Oracle常用数据库表操作
    redis的缓存穿透 缓存并发 缓存失效
    Struts2的拦截器
    Struts2的各种标签库
    Struts2基础知识
    Java常用数据结构和算法
  • 原文地址:https://www.cnblogs.com/codestub/p/2144006.html
Copyright © 2011-2022 走看看