存档

2013年4月 的存档

独立的调试符号文件

2013年4月29日 没有评论 4,250 次浏览

也许,我们还记得各大Linux发型版提供的debuginfo安装包,比如fedora:http://fedoraproject.org/wiki/Packaging:Debuginfo,这种将可执行程序与调试符号分离的方案好处多多。一方面,缩减了可执行程序的文件大小,在一定程度上提高了程序的执行性能,另一方面,对应的调试符号文件也方便了一些不时之需。本文就来看一下与此相关的两个问题。 一,如何给应用程序创建对应的调试符号文件? 这很简单,看个演示实例。有代码如下: #... [阅读更多]

分类: *nix技术, 跟踪调试 标签: ,

Intel 性能监视器之二

2013年4月21日 没有评论 7,866 次浏览

全文来自Intel开发者手册:Intel? 64 and IA-32 Architectures Software Developer’s Manual Volume 3B System Programming... [阅读更多]

死锁检测模块lockdep简介

2013年4月10日 没有评论 9,662 次浏览

在Linux系统里,假设有两处代码(比如不同线程的两个函数F1和F2)都要获取两个锁(分别为L1和L2),如果F1持有L1后再去获取L2,而此时恰好由F2持有L2且它也正在尝试获取L1,那么此时就是处于死锁的状态,这是一个最简单的死锁例子,也即所谓的AB-BA死锁。 死锁导致的最终结果无需多说,关于如何避免死锁在教科书上也有提到(参考1),最简单直观的做法就是按顺序上锁,以破坏死锁的环形等待条件。但对于拥有成千上万个锁的整个系统来说,完全定义它们之间的顺序是非常困难的,所以一种更可行的办法就是尽量提前发现这其中潜在的死锁风险,而不是等到最后真正出现死锁时给用户带来切实的困惑。 已有很多工具用于发现可能的死锁风险,而本文介绍的调试/检测模块lockdep,即是属于这一类工具的一种。调试模块lockdep从2006年(https://lwn.net/Articles/185666/)引入内核,经过实践验证,其对提前发现死锁起到了巨大的效果(http://lwn.net/Articles/321670/)。 官方文档(完全参考2)有介绍调试模块lockdep的设计原理,这里按照我自己的理解描述一下。 一,lockdep操作的基本单元并非单个的锁实例,而是锁类(lock-class)。比如,struct... [阅读更多]

Intel x86架构之多处理器

2013年4月5日 没有评论 3,760 次浏览

全文来自Intel手册:MultiProcessor Specification(http://download.intel.com/design/pentium/datashts/24201606.pdf) Version 1.4 May ... [阅读更多]

Intel x86架构之I/O APIC

2013年4月4日 没有评论 4,301 次浏览

全文来自Intel手册(见参考1):Intel? 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC)... [阅读更多]

Intel x86架构之APIC

2013年4月4日 没有评论 8,765 次浏览

我是在处理一个网卡中断分发问题时看的这些内容,因为是外部中断到处理器的分发问题,因此我关注的重点是I/O... [阅读更多]