治肾虚不含糖,专注内核性能优化二十年。 https://github.com/KnightKu
发布时间:2013-01-10 14:45:34
1. 什么是workqueueLinux中的Workqueue机制就是为了简化内核线程的创建。通 过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue 是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程. 工作队列(workqueue)是另外一种将工作推后执行的形式.工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。最重要的就是工作队列允许被重新调度甚至是睡眠。 2. 数据结构我们把推后执行的任务叫做工作(work),描......【阅读全文】
发布时间:2013-01-09 14:26:07
这几个函数都是内核的延时函数: 1. udelay(); mdelay(); ndelay();实现的原理本质上都是忙等待,ndelay和mdelay都是通过udelay衍生出来的,我们使用这些函数的实现往往会碰到编译器的警告implicit declaration of function 'udelay',这往往是由于头文件的使用不当造成的。在include/asm-???/delay.h中定义了udelay(),而在include/linux/delay.h中定义了mdelay和ndelay. udelay一般适用于一个比较小的delay,如果你填的数大于2000......【阅读全文】
发布时间:2013-01-04 16:36:22
驱动工程师最关心就是如何编写PCI设备驱动了. 经过前面的处理,所有设备及其信息都已经遍历出来了.在深入分析PCI驱动架构之前,我们来回顾一下前面遍历PCI设备时,对pci_dev->dev的一些重要成员的赋值.以及各结构在sysfs中的视图 8.1:pci架构在sysfs中视图 1:对于pci_dev pci_dev->dev的所属bus,parent和name的赋值: 在pci_scan_child_bus() --> pci_scan_slot()--> pci_scan_single_device()-->pci_sc......【阅读全文】