[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Crash on app startup with cpuemu=vm86(corrected)



On Sun, Oct 25, 2009 at 7:40 PM, Andrew Bird (Sphere Systems)
<ajb@xxxxxxxxxxxxxxxxxxx> wrote:
> My understanding of $_cpu_emu=vm86 is that it's also simulated by software,
> just that it's done on demand and cached.

You are 100% right here. Chunks of vm86 code are translated to 64-bit
native long mode code and then executed. With vm86sim the code is
interpreted instead of translated.

On i386 kernels, DOSEMU can use the vm86 syscall which is native, but
on x86-64 it can't, at least without a special kernel module
(http://v86-64.sourceforge.net/) which switches the CPU from long to
legacy mode and back, somewhat tricky.

What you are running into is a bug in DOSEMU, where it uses a JIT
emulator to execute vm86 code (the default on x86-64, and also used
when $_cpu_emu="off" there). The bug is not present in the slower, but
sometimes more reliable simulator. You could try current SVN to see if
it fixed it, because there have been quite a few emulator fixes. I'm
sorry I haven't had time to do a new release so far.

Bart
--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Linux Console]     [Audio]     [Hams]     [Kernel Newbies]     [Memory]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Camping]     [Yosemite Photos]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linux Resources]     [Fedora Users]

Add to Google Powered by Linux