亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3389 | 回復: 11
打印 上一主題 下一主題

繼續(xù)討論中斷 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-04-01 09:58 |只看該作者 |倒序瀏覽
不要扯遠了,就以8259/x86/up為例

1.為什么在處理中斷過程中需要mask對應的中斷?
  因為在處理中斷過程中,IE位是關閉的。mask有必要么?

2.linux在處理完中斷后,在什么位置打開的中斷使能位,直覺應該在do_IRQ之后,softirq之前吧,找了半天沒找到

論壇徽章:
0
2 [報告]
發(fā)表于 2008-04-01 10:06 |只看該作者

回復 #1 bluesky_jxc 的帖子

對于1我能想到的就是,在中斷處理過程中可能打開中斷,如果一些設備不停發(fā)送中斷,可能會造成中斷重入問題。
除此之外還有其他原因么?

論壇徽章:
0
3 [報告]
發(fā)表于 2008-04-01 11:03 |只看該作者
在__do_IRQ 函數(shù)中釋放被禁止的中斷線。
代碼摘錄:
  fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
{
        irq_desc_t *desc = irq_desc + irq;
        struct irqaction * action;
        unsigned int status;

        kstat_this_cpu.irqs[irq]++;
        if (desc->status & IRQ_PER_CPU) {
                irqreturn_t action_ret;

                /*
                 * No locking required for CPU-local interrupts:
                 */
                desc->handler->ack(irq);
                action_ret = handle_IRQ_event(irq, regs, desc->action);
                if (!noirqdebug)
                        note_interrupt(irq, desc, action_ret);
                desc->handler->end(irq);//對應8259執(zhí)行end_8259A_irq( ),釋放中斷線                return 1;
        }

論壇徽章:
0
4 [報告]
發(fā)表于 2008-04-01 11:08 |只看該作者

回復 #3 dengcainiao 的帖子

sorry,可能是我沒有說清楚。
我想問的是什么時候打開CPU的中斷使能位,IE

你貼的代碼是打開前面屏蔽的一個中斷線而已

論壇徽章:
0
5 [報告]
發(fā)表于 2008-04-01 11:13 |只看該作者
至于第一點,我記得對于非SA_INTERRUPT中斷,IF位被打開

[ 本帖最后由 dengcainiao 于 2008-4-1 11:14 編輯 ]

論壇徽章:
0
6 [報告]
發(fā)表于 2008-04-01 11:16 |只看該作者
handle_IRQ_event中有代碼如下:
fastcall int handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
                                struct irqaction *action)
{
        int ret, retval = 0, status = 0;

        if (!(action->flags & SA_INTERRUPT))
                local_irq_enable();

論壇徽章:
0
7 [報告]
發(fā)表于 2008-04-01 11:20 |只看該作者

回復 #6 dengcainiao 的帖子

這也只是一種情形下打開,如果我設置了SA_INTERRUPT呢?那中斷又在哪里打開呢?

論壇徽章:
0
8 [報告]
發(fā)表于 2008-04-01 11:23 |只看該作者

回復 #5 dengcainiao 的帖子

如果沒有設置SA_INTERRUPT,那么isr就是允許該中斷服務程序被打斷了。
僅僅因為重入問題嗎?

論壇徽章:
0
9 [報告]
發(fā)表于 2008-04-01 11:27 |只看該作者
Linux的中斷確實是可以嵌套執(zhí)行的,對于SA_INTERRUPT的情況我感覺應該是在中斷返回前開中斷操作,具體的可以看看代碼

[ 本帖最后由 dengcainiao 于 2008-4-1 11:29 編輯 ]

論壇徽章:
0
10 [報告]
發(fā)表于 2008-04-01 11:34 |只看該作者

回復 #9 dengcainiao 的帖子

如果找到了我就不會來發(fā)帖子了,sigh
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP