发布时间:2014-12-12 14:50:39
一、问题的提出两年之前我写过一篇可变参数学习笔记,里面曾经简单的解释过一句:代码((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1))的作用是在考虑字节对齐的因素下计算第一个可变参数的起始地址。当时限于时间和水平,未能做更详细的解释。今天(2007-11-26)在csdn论坛上看到了一个帖子http://topic.csdn.net/u/2.........【阅读全文】
发布时间:2014-12-01 18:06:11
在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等价于 if(value)  .........【阅读全文】
发布时间:2014-12-01 17:34:10
前言:以下是根据《深入理解Linux网络技术内幕》对sk_buff的相关总结,由于是刚刚看这本书(太厚了),不免在前期出现错误,随着对此书的深入我会在修改前面的错误,也希望各位牛人给予指点。帮助我成长。sk_buff分析:sk_buff是Linux网络代码中最重要的结构体之一。它是Linux在其协议栈里传送的结构体,也就.........【阅读全文】
发布时间:2014-12-01 10:44:53
__read_mostly原语将定义为存放在.data.read_mostly段中 include/asm/cache.h#define __read_mostly __attribute__((__section__(".data.read_mostly"))) 由此可见,我们可以将经常需要被读取的数据定义为 __read_mostly类型, 这样Linux内核被加载时,该数据将自动被存放到Cache中,以.........【阅读全文】