Ticket #32324

vm1.cpu=4,6 shell=4を指定してTinyVisorを起動するとpage fault

Date d'ouverture: 2013-10-24 23:24 Dernière mise à jour: 2013-11-03 17:14

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

Détails

Starting VMM (x86_64)...
Copyright (c) 2007, 2008 University of Tsukuba
Copyright (c) 2010-2013 Yuichi Watanabe
All rights reserved.
8470292480 bytes (8077 MiB) RAM available.
VMM will use 0xC0C00000-0xC8C00000 (128 MiB).
ooooooooooooooooooooooooooooooooooooooooooooooooooo
Disable ACPI S3
Guest BIOS found. size 0x20000
VMM params: vm0.boot_int18 vm=vm0,vm1 vm1.cpu=4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:02.0,00:14.0,00:1c.5,00:1c.7 shell=4
ACPI DMAR found.
ACPI DMAR cleared.
ACPI MCFG found.
ACPI MCFG cleared.
Loading drivers.
MMCONFIG enabled: phys 0xf8000000 virt 0x84011000 size 0x4000000 seg 0x0000 start bus 0x00 end bus 0x3f
HPET found. base 0xfed00000
Hide HPET from vm0
HPET has 8 timers.
VT-d: base 0xfed90000, cap 0xc0000020e60262, ecap 0xf0101a
VT-d: base 0xfed91000, cap 0xc9008020660262, ecap 0xf0105a
CPU6 panic : Fatal interrupt in VMM: 0x0E Page-Fault Exception (#PF)
CR0: 0x80000039  CR2: 0x00000010  CR3: 0xC0D5B000  CR4: 0x00002668
RSP on interrupt: 0x40377F20  Stack information:
  +00  Error code / RIP    : 0x00000002  +32  RSP        / SS     : 0x40377F50
  +08  RIP        / CS     : 0x401279B8  +40  SS         /        : 0x00000058
  +16  CS         / RFLAGS : 0x00000050  +48             /        : 0x7600000040377F80
  +24  RFLAGS     / RSP    : 0x00217002  +56             /        : 0x00000000
RAX: 0x40334C00  RCX: 0x000002FD  RDX: 0x403E7B28  RBX: 0x00000000
RSP: 0x40377EC8  RBP: 0x40377F80  RSI: 0x00000000  RDI: 0x403E7B60
R8:  0x00000002  R9:  0x40377E80  R10: 0x00000006  R11: 0x00000001
R12: 0x00000001  R13: 0x00000000  R14: 0x00000001  R15: 0x00000010
ES: 0x0058  CS: 0x0050  SS: 0x0058  DS: 0x0058  FS: 0x0058  GS: 0x0080
VMM state of CPU6 ------------------------------
RAX 00000031    RCX 000003D4    RDX 40334C00    RBX 40377E68
RSP 40377C58    RBP 40377D98    RSI 000003D5    RDI 00000000
R8  00000780    R9  00000050    R10 80008000    R11 00000000
R12 40149EF0    R13 40377DB0    R14 00000001    R15 403E6490
CR0 80000039    CR2 00000010    CR3 C0D5B000    CR4 00002668
RFLAGS 00203006  GDTR 40334C00+000000FF  IDTR 401B4AE0+00001000
backtrace:
    0x40377c50: 0x4011a75b
    0x40377da0: 0x4011af88
    0x40377e00: 0x401414c2
    0x40377e20: 0x401147d1
    0x40377e60: 0x40114a17
    0x40377f88: 0x401152c2
    0x40377fc8: 0x401155f9
    0x40377ff8: 0x0
------------------------------------------------
Guest state of CPU6 ----------------------------

------------------------------------------------
(gdb) list *0x401279B8
0x401279b8 is in new_vcpu (../include/core/spinlock.h:73).
68      #endif
69
70              for (;;) {
71
72                      disable_interrupt();
73                      __asm__ volatile (
74                              " xchg  %1, %0 \n"      /* exchange old and *lock */
75      #ifdef __x86_64__
76                              : "=r" (old),           /* output 0 */
77      #else
(gdb) list *0x401152c2
0x401152c2 is in setup_vm (main.c:255).
250             sync_all_processors ();
251
252             if (!vbsp) {
253                     vm = vm_find();
254             }
255             if (new_vcpu(vm, vbsp) == NULL) {
256                     panic ("new_vcpu failed");
257             }
258
259             vmctl_init ();

Ticket History (2/2 Histories)

2013-10-24 23:24 Updated by: yuichi_xy
  • New Ticket "vm1.cpu=4,6 shell=4を指定してTinyVisorを起動するとpage fault" created
2013-11-03 17:14 Updated by: yuichi_xy
  • Résolution Update from Aucun to Fixed
  • État Update from Ouvert to Atteints
  • Ticket Close date is changed to 2013-11-03 17:14
Commentaire

r117 で修正しました。


vm1.cpu=で指定した最初のCPUと、shellが一致

-> vm1の起動が抑止される
$ ./install_to_usb.sh -c 'vm0.boot_int18 vm=vm0,vm1 vm1.cpu=4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:01.0,00:14.0,00:1c.5,00:1c.7 shell=4' /dev/sdd

vm1.cpu=で指定したCPUがBSPの場合は無効になり、最初の無効でないCPUがshellが一致

-> vm1の起動が抑止される
$ ./install_to_usb.sh -c 'vm0.boot_int18 vm=vm0,vm1 vm1.cpu=0,0,4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:01.0,00:14.0,00:1c.5,00:1c.7 shell=4' /dev/sdd

vm1.cpu=で指定したCPUが不正の場合は無効になり、最初の無効でないCPUがshellが一致

-> vm1の起動が抑止される
$ ./install_to_usb.sh -c 'vm0.boot_int18 vm=vm0,vm1 vm1.cpu=z,4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:01.0,00:14.0,00:1c.5,00:1c.7 shell=4' /dev/sdd

vm1.cpu=で指定した2個目以降のCPUと、shellが一致した場合、そのCPUはVM1に割り当てられない

$ ./install_to_usb.sh -c 'vm0.boot_int18 vm=vm0,vm1 vm1.cpu=0,0,4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:01.0,00:14.0,00:1c.5,00:1c.7 shell=6' /dev/sdd

shell=0

-> vm0の起動が抑止される
$ ./install_to_usb.sh -c 'vm0.boot_int18 vm=vm0,vm1 vm1.cpu=4,6 vm1.mem=80000000-21f5fffff vm1.pci=00:01.0,00:14.0,00:1c.5,00:1c.7 shell=0' /dev/sdd

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