串口中断(nobody cared) 问题

z273070329 2015-09-12 02:44:27
在kernel启动过程中按键盘进行输入发生:
irq 105: nobody cared (try booting with the "irqpoll" option)
Backtrace:
[<c000c34c>] (dump_backtrace+0x0/0x10c) from [<c040f720>] (dump_stack+0x18/0x1c)
r6:00000069 r5:00000000 r4:c0e8f640 r3:c0ea3ac4
[<c040f708>] (dump_stack+0x0/0x1c) from [<c00753ec>] (__report_bad_irq+0x28/0xc
[<c00753c4>] (__report_bad_irq+0x0/0xc from [<c007576c>] (note_interrupt+0x1f4/0x250)
r6:00000069 r5:00000000 r4:c0e8f640 r3:0001863c
[<c0075578>] (note_interrupt+0x0/0x250) from [<c0073410>] (handle_irq_event_percpu+0xb0/0x19c)
[<c0073360>] (handle_irq_event_percpu+0x0/0x19c) from [<c0073554>] (handle_irq_event+0x58/0x7
[<c00734fc>] (handle_irq_event+0x0/0x7 from [<c00764e0>] (handle_fasteoi_irq+0xa0/0x17c)
r6:000186a0 r5:c0e8f690 r4:c0e8f640 r3:00000000
[<c0076440>] (handle_fasteoi_irq+0x0/0x17c) from [<c0072bd0>] (generic_handle_irq+0x28/0x3c)
r6:cc824000 r5:c0e88d94 r4:c0e9bcfc r3:c0076440
[<c0072ba8>] (generic_handle_irq+0x0/0x3c) from [<c0009a48>] (handle_IRQ+0x54/0xb
[<c00099f4>] (handle_IRQ+0x0/0xb from [<c0008588>] (gic_handle_irq+0x2c/0x60)
r8:c0e8c080 r7:cc825b6c r6:cc825b38 r5:c0e9b680 r4:fee20100
r3:00000010
[<c000855c>] (gic_handle_irq+0x0/0x60) from [<c0008e80>] (__irq_svc+0x40/0x50)
Exception stack(0xcc825b38 to 0xcc825b80)
5b20: c0ef7ec0 0000000a
5b40: 00000000 00000000 00000202 00000000 cc824000 cc824000 c0e8c080 c0e8f670
5b60: 60000013 cc825bc4 cc825bc8 cc825b80 c0032eb8 c003298c 20000113 ffffffff
r6:ffffffff r5:20000113 r4:c003298c r3:c0032eb8
[<c0032914>] (__do_softirq+0x0/0x194) from [<c0032eb8>] (irq_exit+0x88/0x90)
[<c0032e30>] (irq_exit+0x0/0x90) from [<c0009a4c>] (handle_IRQ+0x58/0xb
r4:c0e9bcfc r3:c0076650
[<c00099f4>] (handle_IRQ+0x0/0xb from [<c0008588>] (gic_handle_irq+0x2c/0x60)
r8:00000069 r7:cc825c5c r6:cc825c28 r5:c0e9b680 r4:fee20100
r3:00000010
[<c000855c>] (gic_handle_irq+0x0/0x60) from [<c0008e80>] (__irq_svc+0x40/0x50)
Exception stack(0xcc825c28 to 0xcc825c70)
5c20: c0e8f690 60000013 00000000 00080008 c0e8f640 cadd92c0
5c40: c0e8f690 00000080 00000069 c0e8f670 60000013 cc825c7c cc825c80 cc825c70
5c60: c007498c c041583c 60000013 ffffffff
r6:ffffffff r5:60000013 r4:c041583c r3:c007498c
[<c0415808>] (_raw_spin_unlock_irqrestore+0x0/0x3 from [<c007498c>] (__setup_irq+0x1b0/0x434)
[<c00747dc>] (__setup_irq+0x0/0x434) from [<c0074cc4>] (request_threaded_irq+0xb4/0x140)
[<c0074c10>] (request_threaded_irq+0x0/0x140) from [<c028794c>] (serial8250_startup+0x7ac/0x814)
[<c02871a0>] (serial8250_startup+0x0/0x814) from [<c0283210>] (uart_startup.part.7+0x54/0x1cc)
[<c02831bc>] (uart_startup.part.7+0x0/0x1cc) from [<c0283470>] (uart_open+0xe8/0x16c)
[<c0283388>] (uart_open+0x0/0x16c) from [<c02781d8>] (tty_open+0x174/0x50c)
r8:00500001 r7:cacc2800 r6:cc95d6c0 r5:00000001 r4:cc956c00
r3:00010004
[<c0278064>] (tty_open+0x0/0x50c) from [<c00b23a8>] (chrdev_open+0xbc/0x19
[<c00b22ec>] (chrdev_open+0x0/0x198) from [<c00ac8f4>] (do_dentry_open.isra.19+0x1e4/0x264)
[<c00ac710>] (do_dentry_open.isra.19+0x0/0x264) from [<c00aca54>] (finish_open+0x28/0x40)
[<c00aca2c>] (finish_open+0x0/0x40) from [<c00bc144>] (do_last.isra.44+0x500/0xb8c)
r4:cc825f00 r3:cc825eb4
[<c00bbc44>] (do_last.isra.44+0x0/0xb8c) from [<c00bc880>] (path_openat+0xb0/0x494)
[<c00bc7d0>] (path_openat+0x0/0x494) from [<c00bcf44>] (do_filp_open+0x34/0x88)
[<c00bcf10>] (do_filp_open+0x0/0x88) from [<c00ad76c>] (do_sys_open+0xf4/0x138)
r7:00000001 r6:ffffff9c r5:cc814000 r4:00000000
[<c00ad678>] (do_sys_open+0x0/0x138) from [<c00ad7d8>] (sys_open+0x28/0x2c)
r7:00000067 r6:c0ec5500 r5:00000007 r4:c056f858
[<c00ad7b0>] (sys_open+0x0/0x2c) from [<c05429d8>] (kernel_init+0x12c/0x1c4)
[<c05428ac>] (kernel_init+0x0/0x1c4) from [<c0030394>] (do_exit+0x0/0x74c)
handlers:
[<c0284ea4>] serial8250_interrupt
Disabling IRQ #105

中断105是串口用的。如果在内核启动过程中不进行键盘输入,则不会发生问题。
请问,这个怎么解决呢?
...全文
1089 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
z273070329 2015-09-16
  • 打赏
  • 举报
回复
引用 5 楼 nswcfd 的回复:
会不会是串口中断跟其它设备共享了?
没有,我分析应该是,在系统启动时,按键盘造成irq 105一直被set, 即一直报有中断上来。
常书 2015-09-16
  • 打赏
  • 举报
回复
确认没有串口接收中断处理函数吗,导致串口变慢,可能是在处理串口接收中断那堵住了
z273070329 2015-09-15
  • 打赏
  • 举报
回复
引用 3 楼 nswcfd 的回复:
后果是什么? 只是打印warning信息,还是系统启动不了?
只是造成串口输出变慢,系统能够正常启动。
nswcfd 2015-09-15
  • 打赏
  • 举报
回复
会不会是串口中断跟其它设备共享了?
z273070329 2015-09-14
  • 打赏
  • 举报
回复
引用 1 楼 Z_R_Z_798205 的回复:
/* * If 99,900 of the previous 100,000 interrupts have not been handled * then assume that the IRQ is stuck in some manner. Drop a diagnostic * and try to turn the IRQ off. * * (The other 100-of-100,000 interrupts may have been a correctly * functioning device sharing an IRQ with the failing one) * * Called under desc->lock */
兄弟,这个注释我看过。我的问题就是因为在系统启动时通过串口输入,中断系统收到中断,却没人响应。
nswcfd 2015-09-14
  • 打赏
  • 举报
回复
后果是什么? 只是打印warning信息,还是系统启动不了?
Buddy.Zhang 2015-09-13
  • 打赏
  • 举报
回复
/* * If 99,900 of the previous 100,000 interrupts have not been handled * then assume that the IRQ is stuck in some manner. Drop a diagnostic * and try to turn the IRQ off. * * (The other 100-of-100,000 interrupts may have been a correctly * functioning device sharing an IRQ with the failing one) * * Called under desc->lock */

4,467

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧