LinuxDev 板


LINE

※ 引述《roylee17 (把我id还我阿......)》之铭言: : ※ 引述《musicguitar ()》之铭言: : : 想请问. : : 如果使用一个share的interrupt.也就是除了我自己的装置会触发这个中断 : : 其他装置也会触发. : : (实际上这个是X86里的IRQ9.ACPI interrupt,我需要知道GPE0 触发讯号) ===================================================================== 再叙一下问题: 你的装置跟系统里的其他装置会共用 IRQ9.ACPI 这个 interrupt line. 因为是共用, 是否该考虑 mutual exclusive lock 的问题? : : 我是否需要做spin lock或是semaphore去做lock的动作. : 需要 lock 与否,是取决你要存取的资料是否共享 : 而不是因为 irq 是不是共用 首先, 共用的现象是存在的, 至少共用了 interrupt-request line 造成 irq-request flag raised. 考虑的问题就是: 1. 如果你的 device 跟 共用那条 request line 的系统装置 "同时" 都产生中断请求, 何者会先被处理? 先处理的会不会影响另者不 会被处理或者造成失误? 2. "同时" 的含义包含在前者发生中断且已进入 ISR 处理, 但尚未离 开 ISR 程式, 後来者就 "同时" 也已产生中断请求. 3. 急速连续请求, 也会发生同一装置在 ISR 处理时 "同时发生" 下 一个请求. PC 的 ACPI 是可变换/设定 讯号来源线接续 及 产出中断的 IRQ-n, 系统通常是自动错开分配, 除非强制共用一个 IRQ-N , PC硬体现在很 便宜, 可以扩充串接几个 Programmable Interrupt Controller, 很少 像往日透过 I/O bus 共用同一条 interrupt line. 要共用同一条线就 要考虑 edge trigger 还是 level trigger, 这涉及到 "同时" 发生时 能否检测到两(多)个中断请求. 若是分离的请求线, 但使用同一个 IRQ -n 输出向量入口, 因不同输入线容易读出判断较不容易混淆. X86 中断的机制是 CPU 会接受中断一定是处於 EI Flag 状态, 一旦接 受就转入 DI , 这就是一种防止ISR 再进入(re-entrant)的硬体 lock 机制. 如果是单核单处理机, 最简单的 software mutual exclusive lock implementation 就是 DI/EI 就互斥共用锁定言, ISR 程式在未结束前不做 EI 就是挡住共用或下一 个同时的中断请求闯进来, 避免造成 shared ISR 用到的 register/ stack/data-memory 引起相互干扰的混乱. : : 因为我在kernel 2.6.32使用这两个lock都会出现kernel error(类似kernel bug)的讯息. : : 我的ISR所做的事是去动作I2C.读取device的暂存器. : ^^^^^^^^^^^^^^^^^^ : 除了你的 ISR 外,有其他的 code flow 会存取这个暂存器吗? : 另外,ISR 中,不适用 semaphore : 或是其他需要 process context 的同步机制 ISR 理论上已是 OS Kernel 最底层的工作, 不会再叫用其他程式 顶多就是 set event flag. : spin lock 应该是没问题的(需不需要是另外一回事) : 如果你的 lock 是自己建的,记得初始化 : 如果是 lock 系统中现有的某个 lock, : 那要检查一下整个 lock 的使用情况, : 你有没有 double lock/unlock : error message 可以贴上来 : : 另外.我曾在kernel 2.6.29中.semaphore不会出现error.只有spin lock会! : : 所以我觉得奇怪.ISR中.到底需不需要再做lock的动作. : : 因为我一lock就当机了!!!所以我现在是把lock都拿掉了!! : : 不知道会不会出问题... 若请求不够密集不是太快, 只要不随意进行 EI 就很难有麻烦. ※ 编辑: ggg12345 来自: 140.115.4.12 (03/04 20:53) ※ 编辑: ggg12345 来自: 140.115.4.12 (03/05 12:39)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP