mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
accel: Remove HAX accelerator
HAX is deprecated since commits73741fda6c("MAINTAINERS: Abort HAXM maintenance") and90c167a1da("docs/about/deprecated: Mark HAXM in QEMU as deprecated"), released in v8.0.0. Per the latest HAXM release (v7.8 [*]), the latest QEMU supported is v7.2: Note: Up to this release, HAXM supports QEMU from 2.9.0 to 7.2.0. The next commit (https://github.com/intel/haxm/commit/da1b8ec072) added: HAXM v7.8.0 is our last release and we will not accept pull requests or respond to issues after this. It became very hard to build and test HAXM. Its previous maintainers made it clear they won't help. It doesn't seem to be a very good use of QEMU maintainers to spend their time in a dead project. Save our time by removing this orphan zombie code. [*] https://github.com/intel/haxm/releases/tag/v7.8.0 Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230831082016.60885-1-philmd@linaro.org>
This commit is contained in:
@@ -543,14 +543,6 @@ F: include/sysemu/xen.h
|
||||
F: include/sysemu/xen-mapcache.h
|
||||
F: stubs/xen-hw-stub.c
|
||||
|
||||
Guest CPU Cores (HAXM)
|
||||
---------------------
|
||||
X86 HAXM CPUs
|
||||
S: Orphan
|
||||
F: accel/stubs/hax-stub.c
|
||||
F: include/sysemu/hax.h
|
||||
F: target/i386/hax/
|
||||
|
||||
Guest CPU Cores (NVMM)
|
||||
----------------------
|
||||
NetBSD Virtual Machine Monitor (NVMM) CPU support
|
||||
|
||||
@@ -4,9 +4,6 @@ config WHPX
|
||||
config NVMM
|
||||
bool
|
||||
|
||||
config HAX
|
||||
bool
|
||||
|
||||
config HVF
|
||||
bool
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* QEMU HAXM support
|
||||
*
|
||||
* Copyright (c) 2015, Intel Corporation
|
||||
*
|
||||
* Copyright 2016 Google, Inc.
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* See the COPYING file in the top-level directory.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "sysemu/hax.h"
|
||||
|
||||
bool hax_allowed;
|
||||
|
||||
int hax_sync_vcpus(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
sysemu_stubs_ss = ss.source_set()
|
||||
sysemu_stubs_ss.add(when: 'CONFIG_HAX', if_false: files('hax-stub.c'))
|
||||
sysemu_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
|
||||
sysemu_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
|
||||
sysemu_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
|
||||
|
||||
@@ -52,7 +52,7 @@ Those hosts are officially supported, with various accelerators:
|
||||
* - SPARC
|
||||
- tcg
|
||||
* - x86
|
||||
- hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
|
||||
- hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
|
||||
|
||||
Other host architectures are not supported. It is possible to build QEMU system
|
||||
emulation on an unsupported host architecture using the configure
|
||||
|
||||
@@ -105,12 +105,6 @@ Use ``-machine hpet=off`` instead.
|
||||
The ``-no-acpi`` setting has been turned into a machine property.
|
||||
Use ``-machine acpi=off`` instead.
|
||||
|
||||
``-accel hax`` (since 8.0)
|
||||
''''''''''''''''''''''''''
|
||||
|
||||
The HAXM project has been retired (see https://github.com/intel/haxm#status).
|
||||
Use "whpx" (on Windows) or "hvf" (on macOS) instead.
|
||||
|
||||
``-async-teardown`` (since 8.1)
|
||||
'''''''''''''''''''''''''''''''
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ QEMU can be used in several different ways. The most common is for
|
||||
:ref:`System Emulation`, where it provides a virtual model of an
|
||||
entire machine (CPU, memory and emulated devices) to run a guest OS.
|
||||
In this mode the CPU may be fully emulated, or it may work with a
|
||||
hypervisor such as KVM, Xen, Hax or Hypervisor.Framework to allow the
|
||||
hypervisor such as KVM, Xen or Hypervisor.Framework to allow the
|
||||
guest to run directly on the host CPU.
|
||||
|
||||
The second supported way to use QEMU is :ref:`User Mode Emulation`,
|
||||
|
||||
@@ -659,15 +659,18 @@ Use ``Icelake-Server`` instead.
|
||||
System accelerators
|
||||
-------------------
|
||||
|
||||
Userspace local APIC with KVM (x86, removed 8.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
Userspace local APIC with KVM (x86, removed in 8.0)
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
``-M kernel-irqchip=off`` cannot be used on KVM if the CPU model includes
|
||||
a local APIC. The ``split`` setting is supported, as is using ``-M
|
||||
kernel-irqchip=off`` when the CPU does not have a local APIC.
|
||||
|
||||
System accelerators
|
||||
-------------------
|
||||
HAXM (``-accel hax``) (removed in 8.2)
|
||||
''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
The HAXM project has been retired (see https://github.com/intel/haxm#status).
|
||||
Use "whpx" (on Windows) or "hvf" (on macOS) instead.
|
||||
|
||||
MIPS "Trap-and-Emulate" KVM support (removed in 8.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
@@ -6,7 +6,7 @@ System Emulation
|
||||
|
||||
This section of the manual is the overall guide for users using QEMU
|
||||
for full system emulation (as opposed to user-mode emulation).
|
||||
This includes working with hypervisors such as KVM, Xen, Hax
|
||||
This includes working with hypervisors such as KVM, Xen
|
||||
or Hypervisor.Framework.
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -21,9 +21,6 @@ Tiny Code Generator (TCG) capable of emulating many CPUs.
|
||||
* - Xen
|
||||
- Linux (as dom0)
|
||||
- Arm, x86
|
||||
* - Intel HAXM (hax)
|
||||
- Linux, Windows
|
||||
- x86
|
||||
* - Hypervisor Framework (hvf)
|
||||
- MacOS
|
||||
- x86 (64 bit only), Arm (64 bit only)
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include "hw/intc/kvm_irqcount.h"
|
||||
#include "trace.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/hax.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "hw/sysbus.h"
|
||||
@@ -271,7 +270,7 @@ static void apic_common_realize(DeviceState *dev, Error **errp)
|
||||
|
||||
/* Note: We need at least 1M to map the VAPIC option ROM */
|
||||
if (!vapic && s->vapic_control & VAPIC_ENABLE_MASK &&
|
||||
!hax_enabled() && current_machine->ram_size >= 1024 * 1024) {
|
||||
current_machine->ram_size >= 1024 * 1024) {
|
||||
vapic = sysbus_create_simple("kvmvapic", -1, NULL);
|
||||
}
|
||||
s->vapic = vapic;
|
||||
|
||||
@@ -81,7 +81,6 @@
|
||||
#pragma GCC poison CONFIG_SPARC_DIS
|
||||
#pragma GCC poison CONFIG_XTENSA_DIS
|
||||
|
||||
#pragma GCC poison CONFIG_HAX
|
||||
#pragma GCC poison CONFIG_HVF
|
||||
#pragma GCC poison CONFIG_LINUX_USER
|
||||
#pragma GCC poison CONFIG_KVM
|
||||
|
||||
@@ -422,7 +422,7 @@ struct CPUState {
|
||||
int32_t exception_index;
|
||||
|
||||
AccelCPUState *accel;
|
||||
/* shared by kvm, hax and hvf */
|
||||
/* shared by kvm and hvf */
|
||||
bool vcpu_dirty;
|
||||
|
||||
/* Used to keep track of an outstanding cpu throttle thread for migration
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
/*
|
||||
* QEMU HAXM support
|
||||
*
|
||||
* Copyright IBM, Corp. 2008
|
||||
*
|
||||
* Authors:
|
||||
* Anthony Liguori <aliguori@us.ibm.com>
|
||||
*
|
||||
* Copyright (c) 2011 Intel Corporation
|
||||
* Written by:
|
||||
* Jiang Yunhong<yunhong.jiang@intel.com>
|
||||
* Xin Xiaohui<xiaohui.xin@intel.com>
|
||||
* Zhang Xiantao<xiantao.zhang@intel.com>
|
||||
*
|
||||
* Copyright 2016 Google, Inc.
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*
|
||||
*/
|
||||
|
||||
/* header to be included in non-HAX-specific code */
|
||||
|
||||
#ifndef QEMU_HAX_H
|
||||
#define QEMU_HAX_H
|
||||
|
||||
int hax_sync_vcpus(void);
|
||||
|
||||
#ifdef NEED_CPU_H
|
||||
# ifdef CONFIG_HAX
|
||||
# define CONFIG_HAX_IS_POSSIBLE
|
||||
# endif
|
||||
#else /* !NEED_CPU_H */
|
||||
# define CONFIG_HAX_IS_POSSIBLE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAX_IS_POSSIBLE
|
||||
|
||||
extern bool hax_allowed;
|
||||
|
||||
#define hax_enabled() (hax_allowed)
|
||||
|
||||
#else /* !CONFIG_HAX_IS_POSSIBLE */
|
||||
|
||||
#define hax_enabled() (0)
|
||||
|
||||
#endif /* CONFIG_HAX_IS_POSSIBLE */
|
||||
|
||||
#endif /* QEMU_HAX_H */
|
||||
@@ -12,7 +12,6 @@
|
||||
#define QEMU_HW_ACCEL_H
|
||||
|
||||
#include "hw/core/cpu.h"
|
||||
#include "sysemu/hax.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "sysemu/hvf.h"
|
||||
#include "sysemu/whpx.h"
|
||||
|
||||
@@ -140,7 +140,6 @@ if cpu in ['x86', 'x86_64', 'arm', 'aarch64']
|
||||
endif
|
||||
if cpu in ['x86', 'x86_64']
|
||||
accelerator_targets += {
|
||||
'CONFIG_HAX': ['i386-softmmu', 'x86_64-softmmu'],
|
||||
'CONFIG_HVF': ['x86_64-softmmu'],
|
||||
'CONFIG_NVMM': ['i386-softmmu', 'x86_64-softmmu'],
|
||||
'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'],
|
||||
@@ -663,11 +662,6 @@ if get_option('hvf').allowed()
|
||||
accelerators += 'CONFIG_HVF'
|
||||
endif
|
||||
endif
|
||||
if get_option('hax').allowed()
|
||||
if get_option('hax').enabled() or targetos in ['windows', 'darwin', 'netbsd']
|
||||
accelerators += 'CONFIG_HAX'
|
||||
endif
|
||||
endif
|
||||
if targetos == 'netbsd'
|
||||
nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
|
||||
if nvmm.found()
|
||||
@@ -4140,7 +4134,6 @@ endif
|
||||
summary_info = {}
|
||||
if have_system
|
||||
summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')}
|
||||
summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')}
|
||||
summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')}
|
||||
summary_info += {'WHPX support': config_all.has_key('CONFIG_WHPX')}
|
||||
summary_info += {'NVMM support': config_all.has_key('CONFIG_NVMM')}
|
||||
|
||||
@@ -69,8 +69,6 @@ option('malloc', type : 'combo', choices : ['system', 'tcmalloc', 'jemalloc'],
|
||||
|
||||
option('kvm', type: 'feature', value: 'auto',
|
||||
description: 'KVM acceleration support')
|
||||
option('hax', type: 'feature', value: 'auto',
|
||||
description: 'HAX acceleration support')
|
||||
option('whpx', type: 'feature', value: 'auto',
|
||||
description: 'WHPX acceleration support')
|
||||
option('hvf', type: 'feature', value: 'auto',
|
||||
|
||||
+4
-4
@@ -26,7 +26,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
|
||||
"-machine [type=]name[,prop[=value][,...]]\n"
|
||||
" selects emulated machine ('-machine help' for list)\n"
|
||||
" property accel=accel1[:accel2[:...]] selects accelerator\n"
|
||||
" supported accelerators are kvm, xen, hax, hvf, nvmm, whpx or tcg (default: tcg)\n"
|
||||
" supported accelerators are kvm, xen, hvf, nvmm, whpx or tcg (default: tcg)\n"
|
||||
" vmport=on|off|auto controls emulation of vmport (default: auto)\n"
|
||||
" dump-guest-core=on|off include guest memory in a core dump (default=on)\n"
|
||||
" mem-merge=on|off controls memory merge support (default: on)\n"
|
||||
@@ -59,7 +59,7 @@ SRST
|
||||
|
||||
``accel=accels1[:accels2[:...]]``
|
||||
This is used to enable an accelerator. Depending on the target
|
||||
architecture, kvm, xen, hax, hvf, nvmm, whpx or tcg can be available.
|
||||
architecture, kvm, xen, hvf, nvmm, whpx or tcg can be available.
|
||||
By default, tcg is used. If there is more than one accelerator
|
||||
specified, the next one is used if the previous one fails to
|
||||
initialize.
|
||||
@@ -178,7 +178,7 @@ ERST
|
||||
|
||||
DEF("accel", HAS_ARG, QEMU_OPTION_accel,
|
||||
"-accel [accel=]accelerator[,prop[=value][,...]]\n"
|
||||
" select accelerator (kvm, xen, hax, hvf, nvmm, whpx or tcg; use 'help' for a list)\n"
|
||||
" select accelerator (kvm, xen, hvf, nvmm, whpx or tcg; use 'help' for a list)\n"
|
||||
" igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n"
|
||||
" kernel-irqchip=on|off|split controls accelerated irqchip support (default=on)\n"
|
||||
" kvm-shadow-mem=size of KVM shadow MMU in bytes\n"
|
||||
@@ -191,7 +191,7 @@ DEF("accel", HAS_ARG, QEMU_OPTION_accel,
|
||||
SRST
|
||||
``-accel name[,prop=value[,...]]``
|
||||
This is used to enable an accelerator. Depending on the target
|
||||
architecture, kvm, xen, hax, hvf, nvmm, whpx or tcg can be available. By
|
||||
architecture, kvm, xen, hvf, nvmm, whpx or tcg can be available. By
|
||||
default, tcg is used. If there is more than one accelerator
|
||||
specified, the next one is used if the previous one fails to
|
||||
initialize.
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
--disable-gtk \
|
||||
--disable-guest-agent \
|
||||
--disable-guest-agent-msi \
|
||||
--disable-hax \
|
||||
--disable-hvf \
|
||||
--disable-iconv \
|
||||
--disable-kvm \
|
||||
|
||||
@@ -110,7 +110,6 @@ meson_options_help() {
|
||||
printf "%s\n" ' gtk-clipboard clipboard support for the gtk UI (EXPERIMENTAL, MAY HANG)'
|
||||
printf "%s\n" ' guest-agent Build QEMU Guest Agent'
|
||||
printf "%s\n" ' guest-agent-msi Build MSI package for the QEMU Guest Agent'
|
||||
printf "%s\n" ' hax HAX acceleration support'
|
||||
printf "%s\n" ' hvf HVF acceleration support'
|
||||
printf "%s\n" ' iconv Font glyph conversion support'
|
||||
printf "%s\n" ' jack JACK sound support'
|
||||
@@ -312,8 +311,6 @@ _meson_option_parse() {
|
||||
--disable-guest-agent) printf "%s" -Dguest_agent=disabled ;;
|
||||
--enable-guest-agent-msi) printf "%s" -Dguest_agent_msi=enabled ;;
|
||||
--disable-guest-agent-msi) printf "%s" -Dguest_agent_msi=disabled ;;
|
||||
--enable-hax) printf "%s" -Dhax=enabled ;;
|
||||
--disable-hax) printf "%s" -Dhax=disabled ;;
|
||||
--enable-hexagon-idef-parser) printf "%s" -Dhexagon_idef_parser=true ;;
|
||||
--disable-hexagon-idef-parser) printf "%s" -Dhexagon_idef_parser=false ;;
|
||||
--enable-hvf) printf "%s" -Dhvf=enabled ;;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user