--- wikisrc/users/kamil/qemu.mdwn 2018/05/27 09:41:46 1.2 +++ wikisrc/users/kamil/qemu.mdwn 2019/01/30 02:07:44 1.4 @@ -63,7 +63,7 @@ docs | build documentation guest-agent | build the QEMU Guest Agent | unknown, probably broken guest-agent-msi| build guest agent Windows MSI installation package | unknown, probably broken pie | Position Independent Executables | should work -modules | modules support | unknown, should work +modules | QEMU modules support (not kernel modules) | unknown, should work debug-tcg | TCG debugging (default is disabled) | should work debug-info | debugging information | should work sparse | sparse checker | should work @@ -91,7 +91,7 @@ membarrier | membarrier system call fdt | fdt device tree | unknown, should work bluez | bluez stack connectivity | unknown kvm | KVM acceleration support | N/A , Linux specific kernel APIs required in userland -hax | HAX acceleration support | not ported, Windows/Darwin specific as of today +hax | HAX acceleration support | mostly works, patches pending hvf | Hypervisor.framework acceleration support | not ported, Darwin specific whpx | Windows Hypervisor Platform acceleration support | N/A rdma | Enable RDMA-based migration and PVRDMA support | unknown, probably not supported @@ -162,50 +162,3 @@ capstone | capstone disassembler s 2. Make QEMU PaX MPROTECT safe. 3. Develop NetBSD USER emulation, attempt to either share the code with FreeBSD (bsd-user, old broken, downstream patches) or with Linux (linux-user, recent, actively maintained). Preferred approach is to share as much code with linux-user as possible, regardless of the state of bsd-user. - -4. Develop HAXM backend support for the NetBSD kernel. - -## HAXM hardware assisted virtualization - -Features: - - - Open Source - - HAXM is an Intel hardware assisted virtualization. - - HAXM supports up to 8 active VMs. - - HAXM supports up to 16 active VCPUs per VM. - - ioctl(2) based API with statically created devices (/dev/HAX, /dev/haxm_vm/vmXX, /dev/haxm_vm/haxm_vmXX_vcpuYY) - -HAXM porting for NetBSD rationale: - - - Relatively low cost (compared to alternatives) to get it aboard to the NetBSD kernel. - - Relatively non-intrusive (compared to alternatives like bhyve and KVM) - - Scratch but non-functional port for NetBSD is ready. - - Active (paid developers) upstream to maintain this - - Clean separation between kernel specific and independent parts (there are at least 2 backends: Darwin and Windows) - - QEMU frontend already exists, API is ioctl(2) based - - Good license (BSD-3-clause) for the kernel driver - - Tailored down for desktop users, initially prepared for Android developers - -HAXM shortcomings: - - - No AMD support - - Required relatively recent Intel CPU - - Not as flexible as KVM-like solutions for embedded or server usage - - Not necessarily ready (not tested) to run every OS in existence, there are known failures to execute some versions of the Linux kernel - -Current HAXM/NetBSD status: - - - The module builds and loads into the kernel (triggering a panic) - - Revisit the UVM APIs to ship all the needed features of sharing memory between user and kernel that is used by HAXM - -> https://github.com/krytarowski/haxm/tree/netbsd-1 -> -> $ cd netbsd && make - -External links: - -[https://www.qemu.org/2017/11/22/haxm-usage-windows/](https://www.qemu.org/2017/11/22/haxm-usage-windows/) - -[https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm](https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm) - -[https://github.com/intel/haxm](https://github.com/intel/haxm)