USB 键盘和鼠标都滞后

Emi*_*l H 5 10.10 input-devices usb

我决定今天在我的工作站上试用 Ubuntu 10.10 RC。安装工作正常,但鼠标和键盘(两者都是 USB)是无法忍受的滞后。当我从 live cd 运行它时也是这种情况。

奇怪的是,它在输入 X 的前几秒钟工作正常。然后在后台发生了一些事情,鼠标突然表现得就像我在最高设置下玩一些要求苛刻的 3d 游戏。键盘也很迟钝,如果我每秒按下一个以上的键,该键将被丢弃,并且实际上只有大约每五个字符会出现在屏幕上。更奇怪的是,当使用 ctrl+alt+f1 切换到控制台模式时,也会出现这种延迟。

如果我在启动时立即切换到控制台模式,它工作正常。然后当我切换回 X 时,它需要几秒钟,然后再次发生。

我检查了日志,最可疑的消息是:

Oct  3 20:16:16 CHURCHILL kernel: [   70.868940] irq 19: nobody cared (try booting with the "irqpoll" option)
Oct  3 20:16:16 CHURCHILL kernel: [   70.868946] Pid: 0, comm: swapper Not tainted 2.6.35-22-generic #33-Ubuntu
Oct  3 20:16:16 CHURCHILL kernel: [   70.868948] Call Trace:
Oct  3 20:16:16 CHURCHILL kernel: [   70.868950]  <IRQ>  [<ffffffff810cba5b>] __report_bad_irq+0x2b/0xa0
Oct  3 20:16:16 CHURCHILL kernel: [   70.868961]  [<ffffffff810cbc5c>] note_interrupt+0x18c/0x1d0
Oct  3 20:16:16 CHURCHILL kernel: [   70.868967]  [<ffffffff81085d10>] ? sched_clock_tick+0x60/0x90
Oct  3 20:16:16 CHURCHILL kernel: [   70.868970]  [<ffffffff810cc45d>] handle_fasteoi_irq+0xdd/0x110
Oct  3 20:16:16 CHURCHILL kernel: [   70.868974]  [<ffffffff8100cb12>] handle_irq+0x22/0x30
Oct  3 20:16:16 CHURCHILL kernel: [   70.868978]  [<ffffffff81590b2c>] do_IRQ+0x6c/0xf0
Oct  3 20:16:16 CHURCHILL kernel: [   70.868981]  [<ffffffff81589713>] ret_from_intr+0x0/0x11
Oct  3 20:16:16 CHURCHILL kernel: [   70.868983]  <EOI>  [<ffffffff810360fb>] ? native_safe_halt+0xb/0x10
Oct  3 20:16:16 CHURCHILL kernel: [   70.868990]  [<ffffffff81012ecd>] default_idle+0x3d/0x90
Oct  3 20:16:16 CHURCHILL kernel: [   70.868995]  [<ffffffff81008da3>] cpu_idle+0xb3/0x110
Oct  3 20:16:16 CHURCHILL kernel: [   70.868999]  [<ffffffff8156f6fa>] rest_init+0x8a/0x90
Oct  3 20:16:16 CHURCHILL kernel: [   70.869004]  [<ffffffff81aedc9d>] start_kernel+0x387/0x390
Oct  3 20:16:16 CHURCHILL kernel: [   70.869007]  [<ffffffff81aed341>] x86_64_start_reservations+0x12c/0x130
Oct  3 20:16:16 CHURCHILL kernel: [   70.869011]  [<ffffffff81aed43f>] x86_64_start_kernel+0xfa/0x109
Oct  3 20:16:16 CHURCHILL kernel: [   70.869013] handlers:
Oct  3 20:16:16 CHURCHILL kernel: [   70.869014] [<ffffffff81404bb0>] (usb_hcd_irq+0x0/0x90)
Oct  3 20:16:16 CHURCHILL kernel: [   70.869019] [<ffffffff81404bb0>] (usb_hcd_irq+0x0/0x90)
Oct  3 20:16:16 CHURCHILL kernel: [   70.869022] [<ffffffff81404bb0>] (usb_hcd_irq+0x0/0x90)
Oct  3 20:16:16 CHURCHILL kernel: [   70.869026] Disabling IRQ #19
Run Code Online (Sandbox Code Playgroud)

IRQ 相关的问题,据我所知,相当普遍。但是,它们中的大多数似乎与共享中断有关,但在我的计算机上,IRQ 19 仅由 USB 控制器使用:

root@CHURCHILL:/home/emil# cat /proc/interrupts
           CPU0
  0:         26   IO-APIC-edge      timer
  1:          2   IO-APIC-edge      i8042
  7:          1   IO-APIC-edge      parport0
  8:          0   IO-APIC-edge      rtc0
  9:          1   IO-APIC-fasteoi   acpi, firewire_ohci
 12:          4   IO-APIC-edge      i8042
 14:          0   IO-APIC-edge      pata_atiixp
 15:       1004   IO-APIC-edge      pata_atiixp
 17:        154   IO-APIC-fasteoi   ATI IXP
 18:       6164   IO-APIC-fasteoi   radeon, hda_intel
 19:    2000002   IO-APIC-fasteoi   ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3
 20:       9097   IO-APIC-fasteoi   eth0, eth1
 22:      13702   IO-APIC-fasteoi   sata_sil
NMI:          0   Non-maskable interrupts
LOC:     105505   Local timer interrupts
SPU:          0   Spurious interrupts
PMI:          0   Performance monitoring interrupts
PND:          0   Performance pending work
RES:          0   Rescheduling interrupts
CAL:          0   Function call interrupts
TLB:          0   TLB shootdowns
TRM:          0   Thermal event interrupts
THR:          0   Threshold APIC interrupts
MCE:          0   Machine check exceptions
MCP:          4   Machine check polls
ERR:          1
MIS:          0
Run Code Online (Sandbox Code Playgroud)

正如内核消息所建议的那样,我能够发现有类似问题的另一个人使用 irqpoll。但是,他报告说,如果没有该选项,输入根本无法工作,这让我认为这毕竟可能与 IRQ 无关。特别是因为它可以正常工作一段时间。

lspci将 USB 控制器列为ATI Technologies Inc IXP SB400 USB Host Controller.

任何建议将不胜感激。

Ext*_*der 2

也许不是内核错误,而是某些用户进程占用了资源?例如,史诗般的 gnome-settings-daemon (https://bugs.launchpad.net/bugs/625793)?启动系统监视器,从菜单中打开所有进程并按 CPU 使用率排序,您可能会找到答案...