■
どうやらirqがずれているらしい。
$ cat /proc/interrupts CPU0 CPU1 0: 23678 0 IO-APIC-edge timer 1: 11846 0 IO-APIC-edge i8042 9: 4381 0 IO-APIC-fasteoi acpi 12: 81025 0 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 16: 3622 0 IO-APIC-fasteoi eth0 17: 0 0 IO-APIC-fasteoi i915 20: 33600 0 IO-APIC-fasteoi ahci 21: 53 0 IO-APIC-fasteoi 23: 75 0 IO-APIC-fasteoi NMI: 0 0 Non-maskable interrupts LOC: 282148 274159 Local timer interrupts SPU: 0 0 Spurious interrupts CNT: 0 0 Performance counter interrupts PND: 0 0 Performance pending work RES: 16772 21554 Rescheduling interrupts CAL: 11 25 Function call interrupts TLB: 8 24 TLB shootdowns ERR: 0 MIS: 0
見てわかることは、i915の割り込みが一回も入っていないということ。
irqpoll=onしてると、別のIRQも見るようなので、ネットワーク使っていなくてもeth0の割り込みが増えていく。んで、ちゃんと動く。
irqpoll=offだと、irq 16 not caredが出る。恐らく、i915のIRQは16番が正しいのではないかと。
あとはキーリピートだけ。これ何だろう?