Linux驱动程序记录时间差的方法
常用的Linux内核空间记录一个事务的时间差有两种方法–使用jiffies变量和do_gettimeofday()函数。这两天接到一个测量PCIe总线带宽的任务,使用芯片自带的PCIe 内部DMA读取PCIe地址空间的数据以测量PCIe的总线带宽,使用了两种测量DMA启动到DMA传输完成的时间差。
1. jiffies记录时间差的特点
使用jiffies较为简单,jiffies变量可以看成一个只读的跟随系统运行时间不断增长的计数器。他在<linux/juiffies.h>文件中定义。使用时可以简单的使用如下方法。
#include <linux/jiffies.h>
u32 j1;
u32 j2;
u32 diff;
u32 diff_ms;
j1 = jiffies; //记录当前时间的jiffies
do_something_here