qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] HAXM is now open source


From: Yu Ning
Subject: Re: [Qemu-devel] HAXM is now open source
Date: Fri, 17 Nov 2017 18:30:24 +0800
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0



On 11/17/2017 16:53, Kamil Rytarowski wrote:
On 14.11.2017 09:54, Yu Ning wrote:
Hello,

As some of you may have noticed, since QEMU 2.9.0, an accelerator known
as “hax” has been available for Windows and macOS builds of QEMU, thanks
to the hard work of Vincent Palatin and help from this community (Paolo
Bonzini, Stefan Weil, et al.).

The accelerator requires a host kernel module (driver) known as Intel
Hardware Accelerated Execution Manager (HAXM), i.e. intelhaxm.sys on
Windows or intelhaxm.kext on macOS, similar to how the KVM accelerator
depends on kvm.ko on Linux.

Today, we released the source code of the HAXM kernel module under the
BSD 3-clause license:

https://github.com/intel/haxm

We look forward to working with the community to improve HAXM (both the
kernel module and the accelerator). The code is accompanied by some
basic documentation (README.md and API.md), which is incomplete, but
hopefully helps people get started. If you have any questions or
suggestions, please create an issue or post a comment on GitHub.

Thanks,
Yu

Please make it clear whether this module can be ported (as host) to
other OSes

It was designed with only Windows and Mac hosts in mind, and we don't plan to support more host OSes. But porting HAXM to another host OS is possible.  If you take a look at the HAXM source tree, there are pretty clear boundaries between host-independent code (core/, include/*.h), Windows-specific code (windows/, include/windows/) and Mac-specific code (darwin/, include/darwin/).
  and whether it can support arbitrary guests OSes (for the
same CPU).

Unfortunately not, but again it can be done.  Initially HAXM was designed to support only two guest OSes, namely Android and Tizen. When we upstreamed the HAXM accelerator module to QEMU, we verified it using various desktop OS images, mostly Linux-based (Chrome OS, Debian, Ubuntu, CentOS, etc.), although there were a few others (FreeDOS, etc.).

Nevertheless, you may run into issues when you boot a completely different guest OS (e.g. Windows, which we have never tested), or even with one that is similar to what I've mentioned (e.g. Fedora, which IIRC will boot to a kernel panic).  In such cases, the culprit is usually bug(s) in the HAXM kernel module, causing incorrect behavior when the guest executes certain x86 instructions.  Once all the bugs exposed by a specific guest OS are fixed, that guest OS will work correctly.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]