自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 edge中断分析

目前正在调试msix中断,在测试过程中发现会概率性的丢失中断。Msix中断默认是edge触发的中断,edge触发的中断是在中断对应pin发生电平信号跳变的时候,会发出一个中断请求。因为跳变是一瞬间的,不会像level触发中断那样一直保持电平不变,这样就可能会漏掉某一个跳变的瞬间,表现就是丢失了一个中断。 内核中处理edge触发中断的函数为handle_edge_irq,此函数有do_IRQ

2015-07-19 10:57:01 3084

原创 调度时机分析之被动调度(之中断处理返回)

之前一篇博客中是关于被动调度的系统调用返回部分,这篇博客将接着写被动调度的中断返回部分。 分析基于内核版本2.6.12.6Linux进程的调度主要分为主动调度和被动调度两大类。整个linux运行过程中,被动调度分为用户态抢占调度和内核态抢占调度。用户态抢占调度发生在当系统调用、中断处理、异常处理等返回用户态时,或者进程的时间片用完时。这篇博客就是写用户态抢占调度的中断处理返

2015-07-16 22:26:24 3638

原创 调度时机分析之被动调度(之系统调用返回)

分析基于内核版本2.6.12.6 在什么情况下,会触发调度?Linux进程的调度主要分为主动调度和被动调度两大类。◆主动调度主动调度就是进程自己缺少相应的所申请的资源,显示调用schedule,让出处理器。◆被动调度在整个linux运行过程中,被动调度又可细分为两种:●用户态抢占调度●内核态抢占调度 下面就结合内核代码分析上述各种调度时机的详细情况。

2015-07-13 20:07:04 4739

原创 gdb调试--堆栈相关

用GDB调试程序最常用的莫过于使用bt命令查看发生问题时的调用栈了。显示的堆栈信息依次是从最底层到最上层的一个被调用关系。那这些堆栈信息是如何而来的?函数在调用的时候会自动的将一些信息压栈。以x86架构下为情况说明,首先压入的是参数,在有多个多个参数的情况下,从右往左依次压入;然后是调用函数的返回地址;接着是压调用函数的栈帧的帧指针ebp(或者rsp);再下来就是被调用函数的局部变量了。

2015-07-07 21:38:07 1797

原创 gdb调试--汇编指令处断点

GDB中断点使用都很简单,如果我们要断点在函数main开始,直接b main就行。  图1 如上图所示停留在断点1,main函数开始处。汇编看到是在第四条汇编指令,那前3条指令都做了些什么?第一条指令是将rbp寄存器压栈,rbp寄存器保存的是栈帧的底部,这里是将调用main函数的函数(这里main是被调用函数)的栈帧底部压栈。第二条汇编指令是将rsp寄存器的值存入rbp

2015-07-04 00:11:00 13987

原创 中断类型标志

在调用request_irq函数申请一个IRQ时,会传入相应的中断类型标志。对于这些标志新旧版本的内核实现是不完全相同的。 IRQF_DISABLED3.16.7-ct7版本内核中此标志是没有地方用到的。此标志表示中断在处理的时候是关中断的,不能被另外的中断所打断。(http://lwn.net/Articles/380931/)这篇文章里有讲到此标志在新内核中被废弃的原因。之前老

2015-07-02 22:16:10 2607

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除