Public bug reported: When launching qemu-system-i386 or qemu-system-x86_64 with 1 MB of RAM allocated to the guest (-m 1) and no guest image specified, QEMU will crash while trying to "execute code outside of RAM or ROM" after approximately 10 minutes. I discovered this while using QEMU 2.5.0, but I verified that it also occurs with 2.5.1.1 and the latest source available in git (2.6.50, commit d6550e9ed2e1a60d889dfb721de00d9a4e3bafbe). I built all of these different versions of QEMU on the same 64-bit Ubuntu 14.04.3 host using the distro's default GCC 4.8.4.
Two observations: 1. This only occurs when allocating 1 MB of RAM to the guest. When I allocate 2 MB, this does not happen. I tried running both i386/x86_64 QEMUs for hours with 2 MB and didn't observe this crash. 2. This may be a SeaBIOS bug, as there is no guest code to execute. After enabling the SeaBIOS debug at the ISA 0x402 port and redirecting it to stdio, the last SeaBIOS state transition reported ("Booting from ROM... Booting from c980:0361") occurs immediately at QEMU startup with no further logging messages seen prior to the crash ten minutes later. My captured SeaBIOS debug output is here: http://pastebin.com/GXm2L44E To reproduce, use the following command lines: ./i386-softmmu/qemu-system-i386 -display none -m 1 -monitor stdio ./x86_64-softmmu/qemu-system-x86_64 -display none -m 1 -monitor stdio For both 32/64-bit QEMUs, the output is the same. After running for about 10 minutes (I've seen it take between 7m 15s (v2.5.1.1) to 10m 25s (v2.6.50) of runtime to occur by using the "time" command), the following output is shown: --- OUTPUT BEGINS --- e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a0063 EAX=00100000 EBX=00000018 ECX=00002c06 EDX=0009cde0 ESI=000caa20 EDI=00100000 EBP=ffffffff ESP=00007bcc EIP=000038e3 EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 ffffffff 00cf9300 CS =9c78 0009c780 ffffffff 008f9b00 SS =0000 00000000 ffffffff 008f9300 DS =9cf3 0009cf30 ffffffff 00cf9300 FS =0000 00000000 ffffffff 00cf9300 GS =0000 00000000 ffffffff 00cf9300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 00000000 00000000 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 DR6=ffff0ff0 DR7=00000400 CCS=000000c2 CCD=00002c06 CCO=CLR EFER=0000000000000000 FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80 FPR0=0000000000000000 0000 FPR1=0000000000000000 0000 FPR2=0000000000000000 0000 FPR3=0000000000000000 0000 FPR4=0000000000000000 0000 FPR5=0000000000000000 0000 FPR6=0000000000000000 0000 FPR7=0000000000000000 0000 XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000 XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000 XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000 XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000 --- OUTPUT ENDS --- ** Affects: qemu Importance: Undecided Status: New ** Tags: seabios -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1587211 Title: qemu-system-i386/x86_64 crash with 1 MB guest RAM Status in QEMU: New Bug description: When launching qemu-system-i386 or qemu-system-x86_64 with 1 MB of RAM allocated to the guest (-m 1) and no guest image specified, QEMU will crash while trying to "execute code outside of RAM or ROM" after approximately 10 minutes. I discovered this while using QEMU 2.5.0, but I verified that it also occurs with 2.5.1.1 and the latest source available in git (2.6.50, commit d6550e9ed2e1a60d889dfb721de00d9a4e3bafbe). I built all of these different versions of QEMU on the same 64-bit Ubuntu 14.04.3 host using the distro's default GCC 4.8.4. Two observations: 1. This only occurs when allocating 1 MB of RAM to the guest. When I allocate 2 MB, this does not happen. I tried running both i386/x86_64 QEMUs for hours with 2 MB and didn't observe this crash. 2. This may be a SeaBIOS bug, as there is no guest code to execute. After enabling the SeaBIOS debug at the ISA 0x402 port and redirecting it to stdio, the last SeaBIOS state transition reported ("Booting from ROM... Booting from c980:0361") occurs immediately at QEMU startup with no further logging messages seen prior to the crash ten minutes later. My captured SeaBIOS debug output is here: http://pastebin.com/GXm2L44E To reproduce, use the following command lines: ./i386-softmmu/qemu-system-i386 -display none -m 1 -monitor stdio ./x86_64-softmmu/qemu-system-x86_64 -display none -m 1 -monitor stdio For both 32/64-bit QEMUs, the output is the same. After running for about 10 minutes (I've seen it take between 7m 15s (v2.5.1.1) to 10m 25s (v2.6.50) of runtime to occur by using the "time" command), the following output is shown: --- OUTPUT BEGINS --- e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002410. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002418. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002420. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002428. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00002430. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003410. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003418. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003420. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003428. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00003430. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. e1000: Reading register at offset: 0x00010000. It is not fully implemented. qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a0063 EAX=00100000 EBX=00000018 ECX=00002c06 EDX=0009cde0 ESI=000caa20 EDI=00100000 EBP=ffffffff ESP=00007bcc EIP=000038e3 EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 ffffffff 00cf9300 CS =9c78 0009c780 ffffffff 008f9b00 SS =0000 00000000 ffffffff 008f9300 DS =9cf3 0009cf30 ffffffff 00cf9300 FS =0000 00000000 ffffffff 00cf9300 GS =0000 00000000 ffffffff 00cf9300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 00000000 00000000 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 DR6=ffff0ff0 DR7=00000400 CCS=000000c2 CCD=00002c06 CCO=CLR EFER=0000000000000000 FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80 FPR0=0000000000000000 0000 FPR1=0000000000000000 0000 FPR2=0000000000000000 0000 FPR3=0000000000000000 0000 FPR4=0000000000000000 0000 FPR5=0000000000000000 0000 FPR6=0000000000000000 0000 FPR7=0000000000000000 0000 XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000 XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000 XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000 XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000 --- OUTPUT ENDS --- To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1587211/+subscriptions