<![CDATA[蜗窝科技]]> http://free586.com/ zh-cn www.emlog.net 中断唤醒系统流程 http://free586.com/irq_subsystem/irq_handle_procedure.html 1) 设备唤醒cpu之后是立即跳转中断向量表指定的位置吗?如果不是,那么是什么时候才会跳转呢?

2) 已经跳转到中断服务函数开始执行代码,后续就会调用你注册的中断handle 代码吗?如果不是,那中断服务函数做什么准备呢?而你注册的中断handle又会在什么时候才开始执行呢?
3) 假如register_thread_irq方式注册的threaded irq中调用msleep(1000),睡眠1秒,请问系统此时会继续睡下去而没调度回来吗?因此导致msleep后续的操作没有执行。
4) 如果在注册的中断handle中把主要的操作都放在delayed work中,然后queue delayed work,work延时1秒执行,请问系统此时会继续睡下去而没调度delayed work 吗?因此导致delayed work 中的操作没有执行呢?
5) 如果4)成立的话,我们该如何编程避免这个问题呢?
好了,本片文章就为你解答所有的疑问。
注:文章代码分析基于linux-4.15.0-rc3。

阅读全文>>]]>
Mon, 01 Jan 2018 09:03:28 +0000 smcdef http://free586.com/irq_subsystem/irq_handle_procedure.html
Concurrency Managed Workqueue之(四):workqueue如何处理work http://free586.com/irq_subsystem/queue_and_handle_work.html 本文主要讲述下面两部分的内容:

秒速牛牛,秒速牛牛官网 1、将work挂入workqueue的处理过程

2、如何处理挂入workqueue的work

阅读全文>>]]>
Mon, 17 Aug 2015 11:41:51 +0000 linuxer http://free586.com/irq_subsystem/queue_and_handle_work.html
Concurrency Managed Workqueue之(三):创建workqueue代码分析 http://free586.com/irq_subsystem/alloc_workqueue.html 阅读全文>>]]> Thu, 06 Aug 2015 10:22:41 +0000 linuxer http://free586.com/irq_subsystem/alloc_workqueue.html Concurrency Managed Workqueue之(二):CMWQ概述 http://free586.com/irq_subsystem/cmwq-intro.html 秒速牛牛,秒速牛牛官网 一种新的机制出现的原因往往是为了解决实际的问题,虽然linux kernel中已经提供了workqueue的机制,那么为何还要引入cmwq呢?也就是说:旧的workqueue机制存在什么样的问题?在新的 cmwq又是如何解决这些问题的呢?它接口是如何呈现的呢(驱动工程师最关心这个了)?如何兼容旧的驱动呢?本文希望可以解开这些谜题。

本文的代码来自linux kernel 4.0。

阅读全文>>]]>
Fri, 31 Jul 2015 04:29:13 +0000 linuxer http://free586.com/irq_subsystem/cmwq-intro.html
Concurrency Managed Workqueue之(一):workqueue的基本概念 http://free586.com/irq_subsystem/workqueue.html 阅读全文>>]]> Wed, 15 Jul 2015 10:47:28 +0000 linuxer http://free586.com/irq_subsystem/workqueue.html