VirtualBox

Ticket #19315 (new defect)

Opened 20 months ago

Last modified 11 months ago

Virtualbox freeze at Redhat Codeready Containers startup (libvirt)

Reported by: jagusztinl Owned by:
Component: other Version: VirtualBox 6.1.0
Keywords: libvirt Cc:
Guest type: Linux Host type: Windows

Description

Tried to install Redhat Codeready Containers 4.2 on a Centos 8.1 guest in Virtualbox with nested Intel VT virtualisation. At crc (libvirt) startup, Virtualbox guest comletely frozen. Exactly the same steps working in vmware player.

Attachments

libvirtd.zip Download (66.6 KB) - added by jagusztinl 20 months ago.
debug log

Change History

comment:1 Changed 20 months ago by jagusztinl

Hangs immediately after this:

2020-02-16 09:02:28.320+0000: starting up libvirt version: 4.5.0, package: 35.2.module_el8.1.0+266+ba744077 (CentOS Buildsys <bugs@centos.org>, 2020-02-04-22:03:54, ), qemu version: 2.12.0qemu-kvm-2.12.0-88.module_el8.1.0+266+ba744077.2, kernel: 4.18.0-147.el8.x86_64, hostname: localhost.localdomain
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name guest=crc,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-1-crc/master-key.aes -machine pc-i440fx-rhel7.6.0,accel=kvm,usb=off,dump-guest-core=off -cpu host -m 7813 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 7a79dc16-4a13-4f2c-81d5-6f2fcf7af65e -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=29,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot menu=off,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/home/crc/.crc/machines/crc/crc,format=qcow2,if=none,id=drive-virtio-disk0,aio=threads -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=31,id=hostnet0,vhost=on,vhostfd=32 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:fd:fc:07:21:82,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charchannel0 -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -vnc 127.0.0.1:0 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -object rng-random,id=objrng0,filename=/dev/random -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.0,addr=0x7 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
2020-02-16 09:02:28.320+0000: Domain id=1 is tainted: host-cpu
Last edited 11 months ago by ramshankar (previous) (diff)

comment:2 Changed 20 months ago by jagusztinl

info:
<capabilities>

  <host>
    <uuid>0682cf7e-111f-9045-a430-71558cc0add1</uuid>
    <cpu>
      <arch>x86_64</arch>
      <model>Westmere</model>
      <vendor>Intel</vendor>
      <topology sockets='1' cores='4' threads='1'/>
      <feature name='vme'/>
      <feature name='ht'/>
      <feature name='pclmuldq'/>
      <feature name='vmx'/>
      <feature name='pcid'/>
      <feature name='x2apic'/>
      <feature name='movbe'/>
      <feature name='xsave'/>
      <feature name='osxsave'/>
      <feature name='avx'/>
      <feature name='rdrand'/>
      <feature name='hypervisor'/>
      <feature name='fsgsbase'/>
      <feature name='avx2'/>
      <feature name='invpcid'/>
      <feature name='rdseed'/>
      <feature name='clflushopt'/>
      <feature name='md-clear'/>
      <feature name='rdtscp'/>
      <feature name='abm'/>
      <feature name='3dnowprefetch'/>
      <feature name='invtsc'/>
      <pages unit='KiB' size='4'/>
      <pages unit='KiB' size='2048'/>
    </cpu>
    <power_management>
      <suspend_mem/>
      <suspend_disk/>
      <suspend_hybrid/>
    </power_management>
    <iommu support='no'/>
    <migration_features>
      <live/>
      <uri_transports>
        <uri_transport>tcp</uri_transport>
        <uri_transport>rdma</uri_transport>
      </uri_transports>
    </migration_features>
    <topology>
      <cells num='1'>
        <cell id='0'>
          <memory unit='KiB'>9840304</memory>
          <pages unit='KiB' size='4'>2460076</pages>
          <pages unit='KiB' size='2048'>0</pages>
          <distances>
            <sibling id='0' value='10'/>
          </distances>
          <cpus num='4'>
            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
          </cpus>
        </cell>
      </cells>
    </topology>
    <cache>
      <bank id='0' level='3' type='both' size='8' unit='MiB' cpus='0'/>
      <bank id='1' level='3' type='both' size='8' unit='MiB' cpus='1'/>
      <bank id='2' level='3' type='both' size='8' unit='MiB' cpus='2'/>
      <bank id='3' level='3' type='both' size='8' unit='MiB' cpus='3'/>
    </cache>
    <secmodel>
      <model>selinux</model>
      <doi>0</doi>
      <baselabel type='kvm'>system_u:system_r:svirt_t:s0</baselabel>
      <baselabel type='qemu'>system_u:system_r:svirt_tcg_t:s0</baselabel>
    </secmodel>
    <secmodel>
      <model>dac</model>
      <doi>0</doi>
      <baselabel type='kvm'>+107:+107</baselabel>
      <baselabel type='qemu'>+107:+107</baselabel>
    </secmodel>
  </host>

  <guest>
    <os_type>hvm</os_type>
    <arch name='i686'>
      <wordsize>32</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine>
      <machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.6.0</machine>
      <machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.5.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.1.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.2.0</machine>
      <machine maxCpus='255'>pc-q35-rhel7.3.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.4.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.3.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.4.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.5.0</machine>
      <domain type='qemu'/>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <pae/>
      <nonpae/>
    </features>
  </guest>

  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine>
      <machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.6.0</machine>
      <machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.5.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.1.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.2.0</machine>
      <machine maxCpus='255'>pc-q35-rhel7.3.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.4.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.3.0</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.4.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.5.0</machine>
      <domain type='qemu'/>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
    </features>
  </guest>

</capabilities>
Last edited 11 months ago by ramshankar (previous) (diff)

comment:3 Changed 20 months ago by jagusztinl

config:

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit crc
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>crc</name>
  <uuid>7a79dc16-4a13-4f2c-81d5-6f2fcf7af65e</uuid>
  <memory unit='KiB'>8000000</memory>
  <currentMemory unit='KiB'>8000000</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>
    <boot dev='hd'/>
    <bootmenu enable='no'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu mode='host-passthrough' check='none'/>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' io='threads'/>
      <source file='/home/crc/.crc/machines/crc/crc'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='piix3-uhci'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:fd:fc:07:21:82'/>
      <source network='crc'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='pty'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>
    <video>
      <model type='cirrus' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
    <rng model='virtio'>
      <backend model='random'>/dev/random</backend>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </rng>
  </devices>
</domain>
Last edited 11 months ago by ramshankar (previous) (diff)

Changed 20 months ago by jagusztinl

debug log

comment:4 Changed 20 months ago by jagusztinl

virtualbox guest log:

00:00:59.028630 VMMDev: Guest Log: 16:11:56.347491 main     VBoxService 6.1.2 r135662 (verbosity: 0) linux.amd64 (Jan 13 2020 12:20:51) release log
00:00:59.028664 VMMDev: Guest Log: 16:11:56.347496 main     Log opened 2020-02-17T16:11:56.347483000Z
00:00:59.028740 VMMDev: Guest Log: 16:11:56.347622 main     OS Product: Linux
00:00:59.028857 VMMDev: Guest Log: 16:11:56.347735 main     OS Release: 4.18.0-147.el8.x86_64
00:00:59.028923 VMMDev: Guest Log: 16:11:56.347807 main     OS Version: #1 SMP Wed Dec 4 21:51:45 UTC 2019
00:00:59.028978 VMMDev: Guest Log: 16:11:56.347862 main     Executable: /opt/VBoxGuestAdditions-6.1.2/sbin/VBoxService
00:00:59.028992 VMMDev: Guest Log: 16:11:56.347863 main     Process ID: 2499
00:00:59.029001 VMMDev: Guest Log: 16:11:56.347864 main     Package type: LINUX_64BITS_GENERIC
00:00:59.033167 VMMDev: Guest Log: 16:11:56.352052 main     6.1.2 r135662 started. Verbose level = 0
00:00:59.034346 GUI: UISession::sltAdditionsChange: GA state change event came, notifying listeners
00:00:59.034378 GUI: UIMachineLogicNormal::sltCheckForRequestedVisualStateType: Requested-state=0, Machine-state=5
00:00:59.035231 VMMDev: Guest Log: 16:11:56.354115 main     vbglR3GuestCtrlDetectPeekGetCancelSupport: Supported (#1)
00:00:59.035749 Guest Control: GUEST_MSG_REPORT_FEATURES: 0x1, 0x8000000000000000
00:00:59.048173 GUI: UISession::sltAdditionsChange: GA state really changed, notifying listeners
00:00:59.048225 GUI: UIMachineViewNormal::adjustGuestScreenSize: Adjust guest-screen size if necessary
00:00:59.048268 GUI: UISession::sltAdditionsChange: GA state change event came, notifying listeners
00:00:59.048286 GUI: UIMachineLogicNormal::sltCheckForRequestedVisualStateType: Requested-state=0, Machine-state=5
00:00:59.059541 VMMDev: Guest Log: vboxsf: g_fHostFeatures=0x8000000f g_fSfFeatures=0x1 g_uSfLastFunction=29
00:00:59.060114 VMMDev: Guest Log: vboxsf: Successfully loaded version 6.1.2 on 4.18.0-147.el8.x86_64 SMP mod_unload modversions  (LINUX_VERSION_CODE=0x41200)
00:00:59.062583 VMMDev: Guest Log: 16:11:56.381464 automount vbsvcAutomounterMountIt: Successfully mounted 'Documents' on '/docs'
00:28:08.359341 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.359365 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.360613 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.361931 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.361956 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.362138 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.363315 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.363340 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.363749 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.364890 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.364915 IEM: rdmsr(0x10a) -> #GP(0)
00:28:08.365139 IEM: rdmsr(0x10a) -> #GP(0)
00:28:13.439788 VMMDev: vmmDevHeartbeatFlatlinedTimer: Guest seems to be unresponsive. Last heartbeat received 4 seconds ago
Last edited 11 months ago by ramshankar (previous) (diff)

comment:5 Changed 20 months ago by jagusztinl

Important: KVM works perfectly on the virtualized host, able to start any other VM (Centos, Ubuntu..) only CRC VM freeze

comment:6 Changed 20 months ago by jagusztinl

Found the problem: Virtualbox freeze with VT-X nested virtualization, if SMP option (more than one cores) set in KVM/QEMU guest!

comment:7 Changed 20 months ago by jagusztinl

How to reproduce: /usr/libexec/qemu-kvm -nographic -cpu host -smp cores=4 -append "console=ttyS0" -m 4096M -accel kvm -kernel /boot/vmlinuz-4.18.0-147.el8.x86_64 -net nic,model=virtio -net user,hostfwd=tcp::2222-:22

FREEZE.

comment:8 Changed 17 months ago by pneumann

Also see ticket #19561. It appears to be a similar (or the same) issue.

comment:9 Changed 11 months ago by ramshankar

Thank you for the report and sincere apologies for the late reply. I'll try to post a test build with a possible fix soon.

I've edited some of the comments with nicer formatting to make reading verbose output easier to read. In the future, please consider enclosing output from commands/dmesg etc. within {{{ and }}}.

Last edited 11 months ago by ramshankar (previous) (diff)

comment:10 Changed 11 months ago by ramshankar

I think the problem should now be fixed (with SMP nested guests).

Feel free to try out the test builds from https://www.virtualbox.org/wiki/Testbuilds (6.1.x 141725 or newer) and provide your feedback here.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use