起動が遅くなってた理由がちょっと判明。

だんだん起動が遅くなってきていたDebian on MacBookだが、14日のアップデートで突然速くなったなと思ったら、15日のアップデートでまた遅くなってしまった。共通しているのは、grub2(grub-common, grub-pc)のアップデート。grubがどうやら怪しいのだが原因特定には至らず。

で、grubがどうやら怪しいのならと、視点を変えてブートオプションを変更してみた。今grubの設定は以下のようになっている。

menuentry "Debian GNU/Linux, with Linux 2.6.32" {
        insmod ext2
        set root=(hd0,3)
        search --no-floppy --fs-uuid --set cd19d76b-a1e3-4bb5-a873-2f4317414d89
        linux   //vmlinuz-2.6.32 root=UUID=d53d33d3-a20f-4d08-8963-e386f730a3b1
ro nosmp irqpoll acpi=noirq quiet
        initrd  //initrd.img-2.6.32
}

オプションをそれぞれ無効にした結果、

  • nosmp:”no responses”と表示され止まり、起動せず。
  • acpi=noirq:何も変わらず。遅いまま。
  • irqpoll:めっちゃ速くなった。

原因はirqpollだった模様。14日のgrubのアップデートで速くなった時より段違いで、40秒強ほどで起動。外すと5分はかかるのに。これ外せばいいじゃん、としたいところだが、これ外すとこれが出るからやってたんだよなぁ。

[    2.204739] irq 11: nobody cared (try booting with the "irqpoll" option)
[    2.204800] Pid: 629, comm: modprobe Not tainted 2.6.32 #1
[    2.204802] Call Trace:
[    2.204804]  <IRQ>  [<ffffffff8108d522>] ? handle_IRQ_event+0x21/0x126
[    2.204817]  [<ffffffff8108e6d8>] ? __report_bad_irq+0x30/0x7d
[    2.204822]  [<ffffffff8108e82a>] ? note_interrupt+0x105/0x16f
[    2.204827]  [<ffffffff810266fa>] ? default_spin_lock_flags+0x5/0xb
[    2.204832]  [<ffffffff8108ef86>] ? handle_level_irq+0xa5/0xf1
[    2.204837]  [<ffffffff8100e763>] ? handle_irq+0x17/0x1d
[    2.204840]  [<ffffffff8100dd9d>] ? do_IRQ+0x57/0xb6
[    2.204844]  [<ffffffff8100c413>] ? ret_from_intr+0x0/0x11
[    2.204848]  [<ffffffff8100fd24>] ? enable_8259A_irq+0xf/0x45
[    2.204853]  [<ffffffff8104b18b>] ? __do_softirq+0x6e/0x19f
[    2.204857]  [<ffffffff8100cbec>] ? call_softirq+0x1c/0x28
[    2.204861]  [<ffffffff8100e70f>] ? do_softirq+0x3f/0x7c
[    2.204864]  [<ffffffff8104afe4>] ? irq_exit+0x36/0x76
[    2.204868]  [<ffffffff8100dde6>] ? do_IRQ+0xa0/0xb6
[    2.204871]  [<ffffffff8100c413>] ? ret_from_intr+0x0/0x11
[    2.204873]  <EOI>  [<ffffffff812fd032>] ? _spin_unlock_irqrestore+0x14/0x1d
[    2.204884]  [<ffffffff812264a4>] ? devm_kzalloc+0x49/0x50
[    2.204892]  [<ffffffffa003864c>] ? ahci_port_start+0x28/0xcd [ahci]
[    2.204901]  [<ffffffffa00de366>] ? __ata_port_freeze+0x35/0x3b [libata]
[    2.204909]  [<ffffffffa00de43f>] ? ata_eh_freeze_port+0x2b/0x40 [libata]
[    2.204916]  [<ffffffffa00d55ac>] ? ata_host_start+0xca/0x15e [libata]
[    2.204922]  [<ffffffffa0039acb>] ? ahci_interrupt+0x0/0x459 [ahci]
[    2.204930]  [<ffffffffa00d61e2>] ? ata_host_activate+0x22/0xdf [libata]
[    2.204936]  [<ffffffffa0039aab>] ? ahci_init_one+0xf6a/0xf8a [ahci]
[    2.204943]  [<ffffffff8119c9e6>] ? local_pci_probe+0x12/0x16
[    2.204947]  [<ffffffff8119d605>] ? pci_device_probe+0xba/0xe3
[    2.204951]  [<ffffffff812244be>] ? driver_probe_device+0xa3/0x14b
[    2.204955]  [<ffffffff812245b5>] ? __driver_attach+0x4f/0x6f
[    2.204959]  [<ffffffff81224566>] ? __driver_attach+0x0/0x6f
[    2.204962]  [<ffffffff81223d49>] ? bus_for_each_dev+0x43/0x74
[    2.204966]  [<ffffffff81223709>] ? bus_add_driver+0xea/0x233
[    2.204970]  [<ffffffff8122486b>] ? driver_register+0xa7/0x111
[    2.204976]  [<ffffffffa0052000>] ? ahci_init+0x0/0x1a [ahci]
[    2.204980]  [<ffffffff8119d841>] ? __pci_register_driver+0x50/0xb8
[    2.204986]  [<ffffffffa0052000>] ? ahci_init+0x0/0x1a [ahci]
[    2.204990]  [<ffffffff81009051>] ? do_one_initcall+0x50/0x148
[    2.204995]  [<ffffffff810724b5>] ? sys_init_module+0xc5/0x21a
[    2.204998]  [<ffffffff8100ba82>] ? system_call_fastpath+0x16/0x1b
[    2.205001] handlers:
[    2.205052] [<ffffffff81233a9e>] (usb_hcd_irq+0x0/0x7e)
[    2.205198] Disabling IRQ #11

むぅ。このメッセージの前に、これも出とるのに今気づいた。

[    0.262910] pci 0000:00:15.0: can't find IRQ for PCI INT A; please try using pci=biosirq

こっちを試したら、irqpollは必要なくなるだろうか…?

予想通り…。

ダメだった。”biosirq”なんてオプションねぇよと言われた。そりゃMacBookだもんなぁ。EFIなんだからダメだよなぁ…。