Ticket #31926

vm0 と vm1 を作成した時に vm1 側で AHCI タイムアウトが発生し OS が起動しない

Date d'ouverture: 2013-08-25 22:04 Dernière mise à jour: 2013-08-31 23:01

Rapporteur:
Propriétaire:
(Aucun)
Type:
État:
Atteints
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Fixed
Fichier:
Aucun

Détails

vm0とvm1を同時起動すると、vm1でGRUBが起動したのち、AHCIタイムアウトが発生する。

IvyBridge世代のマシンで発生。

OSは次の通り。

vm0: Debian GNU/Linux 7.0 (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)
AHCI controller at a0.0, iobase f7c00000, irq 255
Searching bootorder for: /pci@i0cf8/pci-bridge@1c,7/*@0/drive@1/disk@0
AHCI/1: registering: "AHCI/1: ST3320820AS ATA-7 Hard-Disk (298 GiBytes)"
Scan for option roms
Searching bootorder for: HALT
drive 0x000f28e0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=625142448
Space available for UMB: c0000-ee000, f0000-f28e0
Returned 57344 bytes of ZoneHigh
e820 map has 6 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 0000000045a3e000 = 1 RAM
  4: 0000000045a3e000 - 0000000045a40000 = 2 RESERVED
  5: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
Unable to lock ram - bridge not found
enter handle_19:
  NULL
Booting from Hard Disk...
Booting from 0000:7c00
GRUB loading.













WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!

障害発生リビジョン: r107

Ticket History (3/13 Histories)

2013-08-25 22:04 Updated by: yuichi_xy
  • New Ticket "vm0とvm1を同時起動すると、vm1でAHCIタイムアウトが発生する" created
2013-08-25 22:09 Updated by: yuichi_xy
  • Details Updated
2013-08-25 22:09 Updated by: yuichi_xy
  • Details Updated
2013-08-25 22:11 Updated by: yuichi_xy
Commentaire

vm1でFreeBSDを起動したときは、boot:プロンプトが表示された。

vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)
AHCI controller at a0.0, iobase f7c00000, irq 255
Searching bootorder for: /pci@i0cf8/pci-bridge@1c,7/*@0/drive@1/disk@0
AHCI/1: registering: "AHCI/1: Hitachi HDS721032CLA362 ATA-8 Hard-Disk (298 GiBytes)"
Scan for option roms
Searching bootorder for: HALT
drive 0x000f28e0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=625142448
Space available for UMB: c0000-ee000, f0000-f28e0
Returned 57344 bytes of ZoneHigh
e820 map has 6 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 0000000045a3e000 = 1 RAM
  4: 0000000045a3e000 - 0000000045a40000 = 2 RESERVED
  5: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
Unable to lock ram - bridge not found
enter handle_19:
  NULL
Booting from Hard Disk...
Booting from 0000:7c00
|
FreeBSD/x86 boot
Default: 0:ad(0p2)��⡘��$���.ϯ�O���@7h��
boot: 
2013-08-25 22:18 Updated by: yuichi_xy
Commentaire

次の組み合わせでも、vm1でAHCIのタイムアウトが発生した。

vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)
2013-08-25 22:52 Updated by: yuichi_xy
Commentaire

VMM のパラメータで指定していた vm0.boot_int18 を vm0.boot_drive=81 に変更したところ、vm1 側で発生していた AHCI タイムアウトが発生しなくなった。

vm0: Debian GNU/Linux 7.0 (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)

推測だが、この PC の BIOS では INT18 を発行すると、vm1 に割り当てた AHCI までアクセスしてしまうと考えられる。

2013-08-25 23:00 Updated by: yuichi_xy
Commentaire

vm0.boot_drive=81 にしても、次の組み合わせでは vm1 側で AHCI タイムアウトが発生した。

vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)
AHCI controller at a0.0, iobase f7c00000, irq 255
Searching bootorder for: /pci@i0cf8/pci-bridge@1c,7/*@0/drive@1/disk@0
AHCI/1: registering: "AHCI/1: ST3320820AS ATA-7 Hard-Disk (298 GiBytes)"
Scan for option roms
Searching bootorder for: HALT
drive 0x000f28e0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=625142448
Space available for UMB: c0000-ee000, f0000-f28e0
Returned 57344 bytes of ZoneHigh
e820 map has 6 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 0000000045a3e000 = 1 RAM
  4: 0000000045a3e000 - 0000000045a40000 = 2 RESERVED
  5: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
Unable to lock ram - bridge not found
enter handle_19:
  NULL
Booting from Hard Disk...
Booting from 0000:7c00
GRUB loading.













WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!

vm0 も「Drive reset failed.」というメッセージが出力されて、FreeBSD のブートローダが読み込まれませんでした。

2013-08-25 23:05 Updated by: yuichi_xy
Commentaire

yuichi_xy への返信

vm0.boot_drive=81 にしても、次の組み合わせでは vm1 側で AHCI タイムアウトが発生した。 vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)

次の組み合わせでも、vm1 側で AHCI タイムアウトが発生した。

vm0: Debian GNU/Linux 7.0 (amd64版)
vm1: FreeBSD 9.1-RELEASE (amd64版)
AHCI/1: registering: "AHCI/1: Hitachi HDS721032CLA362 ATA-8 Hard-Disk (298 GiBytes)"
Scan for option roms
Searching bootorder for: HALT
drive 0x000f28e0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=625142448
Space available for UMB: c0000-ee000, f0000-f28e0
Returned 57344 bytes of ZoneHigh
e820 map has 6 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 0000000045a3e000 = 1 RAM
  4: 0000000045a3e000 - 0000000045a40000 = 2 RESERVED
  5: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
Unable to lock ram - bridge not found
enter handle_19:
  NULL
Booting from Hard Disk...
Booting from 0000:7c00
WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!
WARNING - Timeout at ahci_command:172!
2013-08-25 23:28 Updated by: yuichi_xy
  • Summary Updated
2013-08-31 16:42 Updated by: yuichi_xy
Commentaire

よく考えると、vm1に割り当てたデバイスのメモリマップマップトレジスタやIOマップトレジスタに、vm0のBIOSからアクセスできてしまう仕組みになっていた。


そこで、vm1に割り当てたAHCIのメモリマップマップトレジスタやIOマップトレジスタに、vm0のBIOSからアクセスできないようにして実験したところ、AHCIのタイムアウトが発生しなくなった。

vm0.boot_int18
vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)
Index: vmm/core/gmm_ident.c
===================================================================
--- vmm/core/gmm_ident.c        (リビジョン 107)
+++ vmm/core/gmm_ident.c        (作業コピー)
@@ -56,6 +56,8 @@
 
        if (phys_in_vmm (gp)) {
                r = GMM_NO_MAPPING;
+       } else if (gp >= 0xf7c00000 && gp <= 0xf7c001ff) {
+               r = GMM_NO_MAPPING;
        } else {
                r = gp;
        }
Index: vmm/core/io_iopass.c
===================================================================
--- vmm/core/io_iopass.c        (リビジョン 107)
+++ vmm/core/io_iopass.c        (作業コピー)
@@ -90,6 +90,9 @@
 
        if (cpu_is_bsp()) {
                for (i = 0; i < NUM_OF_IOPORT; i++) {
+                       if (i >= 0xd000 && i <= 0xdfff) {
+                               continue;
+                       }
                        set_iofunc(i, do_io_pass);
                }
        } else {
2013-08-31 17:57 Updated by: yuichi_xy
Commentaire

r108 で vm1 に割り当てたデバイスに対し、vm0 の BIOS/OS から I/O アクセスやメモリアクセスができないようにしました。 その結果、以下の組み合わせで、vm0 と vm1 の OS が起動することを確認しました。

vm0.boot_int18
vm0: Debian GNU/Linux 7.0 (amd64版)
vm1: FreeBSD 9.1-RELEASE (amd64版)

vm0.boot_int18
vm0: Debian GNU/Linux 7.0 (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)

vm0.boot_int18
vm0: FreeBSD 9.1-RELEASE (amd64版)
vm1: Debian GNU/Linux 7.0 (amd64版)

2013-08-31 18:01 Updated by: yuichi_xy
  • État Update from Ouvert to Atteints
  • Ticket Close date is changed to 2013-08-31 18:01
2013-08-31 23:01 Updated by: yuichi_xy
  • Résolution Update from Aucun to Fixed

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion