* [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build
@ 2017-06-21 10:19 Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
` (16 more replies)
0 siblings, 17 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
This patchset rebased from Paolo's below patchset, which was based on
QEMU 2.0.50 version.
https://github.com/bonzini/qemu/tree/disable-tcg
Since qemu-system-x86_64 enabled kvm and TCG accelators by default, in
fact, the TCG accelator is NOT useful in the system build of x86 platform.
This patchset will disable TCG for x86 platform if --disable-tcg option is
added into ./configure command.
The new configure build command like below
(1)./configure
tcg is enabled by default
(2)./configure --disable-tcg
tcg is disabled in i386 and x86_64 softmmu build
tcg is enabled in others softmmu and all users build
(3)./configure --disable-tcg --target-list=x86_64-softmmu, x86_64-linux-user
tcg is disabled in x86_64 softmmu build
tcg is enabled in x86_64 linux user build
How to verify disable-tcg option
(1)./configure
a)all user and softmmu build are okay.
b) CONFIG_TCG=y is set in $config_target_mak in all user and softmmu directory
c)kvm starting vm is okay
./qemu-system-x86_64 -enable-kvm -cpu host -m 2G -smp cpus=4,cores=4,threads=1,\
sockets=1 -drive format=raw,file=eywa.img,index=0,media=disk -nographic -serial \
stdio -nodefaults
d)tcg starting vm is okay
./qemu-system-x86_64 -m 2G -smp cpus=4,cores=4,threads=1,sockets=1 -drive format=raw,\
file=eywa.img,index=0,media=disk -nographic -serial stdio -nodefaults
(2) ./configure --disable-tcg
a) all user and softmmu build are okay.
b) CONFIG_TCG=y is not set in $config_target_mak in i386_softmmu and x86_64-softmmu
directory
c) kvm starting vm is okay
./qemu-system-x86_64 -enable-kvm -cpu host -m 2G -smp cpus=4,cores=4,threads=1,\
sockets=1 -drive format=raw,file=eywa.img,index=0,media=disk -nographic -serial \
stdio -nodefaults
d) tcg starting vm is aborted
The log as below:
"tcg" accelerator not found.
No accelerator found!
Yang Zhong (15):
configure: add the disable-tcg option
vl: add CONFIG_TCG for tcg related code
tcg: tcg_handle_interrupt() function
tcg: change tcg_enabled()
tcg: move page_size_init() function
kvmvapic: remove tcg related code
tcg: move cpu_sync_bndcs_hflags() function
tcg: make cpu_get_fp80()/cpu_set_fp80() static
tcg: add the tcg-stub.c file into accel/stubs/
tcg: move tb related lock functions
tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
tcg: remove inline definition of flush_icache_range()
tcg: disable tcg in CPUX86State struct
tcg: add the CONFIG_TCG for header
tcg: add the CONFIG_TCG into Makefiles
Makefile.target | 4 +-
accel/Makefile.objs | 2 +-
accel/stubs/Makefile.objs | 1 +
accel/stubs/tcg-stub.c | 129 +++++++++++++++++++++++++++++++++++++++++++
accel/tcg/Makefile.objs | 2 +-
accel/tcg/cpu-exec.c | 1 +
accel/tcg/cputlb.c | 1 +
accel/tcg/tcg-all.c | 2 +-
accel/tcg/translate-all.c | 54 ++++++++++--------
accel/tcg/translate-all.h | 3 +
accel/tcg/translate-common.c | 56 -------------------
bsd-user/main.c | 1 +
configure | 28 +++++++++-
cpus.c | 4 +-
exec.c | 20 +++++++
hw/i386/kvmvapic.c | 24 --------
include/exec/cpu-defs.h | 4 +-
include/exec/cputlb.h | 2 +-
include/exec/exec-all.h | 53 +++++++++---------
include/exec/helper-proto.h | 2 +
include/qemu-common.h | 7 ++-
linux-user/main.c | 2 +-
target/i386/Makefile.objs | 7 ++-
target/i386/cpu.h | 22 ++++++--
target/i386/fpu_helper.c | 26 +--------
target/i386/helper.c | 34 +++++++++++-
target/i386/machine.c | 18 ++++++
target/i386/mpx_helper.c | 30 ----------
tcg/i386/tcg-target.h | 5 +-
tcg/i386/tcg-target.inc.c | 4 ++
tcg/tcg.h | 4 --
trace/control-target.c | 1 -
vl.c | 12 ++++
33 files changed, 356 insertions(+), 209 deletions(-)
create mode 100644 accel/stubs/tcg-stub.c
delete mode 100644 accel/tcg/translate-common.c
--
1.9.1
^ permalink raw reply [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 22:33 ` Richard Henderson
2017-06-22 4:20 ` Thomas Huth
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
` (15 subsequent siblings)
16 siblings, 2 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Add the disable-tcg option into configure and echo CONFIG_TCG=y into
$config_target_mak. The default tcg is enabled for all build. If tcg
is disabled in the build, only i386|x86_64 softmmu option can be disabled,
other softmmu of tagets and users build defaultly enabled the tcg. This
operation do not make big change with the older build command.
The new configure build command like below
(1)./configure
tcg is defaultly enabled
(2)./configure --disable-tcg
tcg is disabled in i386 and x86_64 softmmu build
tcg is enabled in others softmmu and all users build
(3)./configure --disable-tcg --target-list=x86_64-softmmu, x86_64-linux-user
tcg is disabled in x86_64 softmmu build
tcg is enabled in x86_64 linux user build
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
configure | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index ff0f8b9..b4d80e5 100755
--- a/configure
+++ b/configure
@@ -224,6 +224,7 @@ cap_ng=""
attr=""
libattr=""
xfs=""
+tcg="yes"
vhost_net="no"
vhost_scsi="no"
@@ -953,6 +954,10 @@ for opt do
;;
--enable-hax) hax="yes"
;;
+ --disable-tcg) tcg="no"
+ ;;
+ --enable-tcg) tcg="yes"
+ ;;
--disable-tcg-interpreter) tcg_interpreter="no"
;;
--enable-tcg-interpreter) tcg_interpreter="yes"
@@ -5117,7 +5122,6 @@ echo "module support $modules"
echo "host CPU $cpu"
echo "host big endian $bigendian"
echo "target list $target_list"
-echo "tcg debug enabled $debug_tcg"
echo "gprof enabled $gprof"
echo "sparse enabled $sparse"
echo "strip binaries $strip_opt"
@@ -5171,6 +5175,11 @@ echo "Linux AIO support $linux_aio"
echo "ATTR/XATTR support $attr"
echo "Install blobs $blobs"
echo "KVM support $kvm"
+echo "TCG support $tcg"
+if test "$tcg" = "yes" ; then
+ echo "TCG debug enabled $debug_tcg"
+ echo "TCG interpreter $tcg_interpreter"
+fi
echo "HAX support $hax"
echo "RDMA support $rdma"
echo "TCG interpreter $tcg_interpreter"
@@ -6229,6 +6238,7 @@ fi
if test "$target_user_only" = "yes" ; then
echo "CONFIG_USER_ONLY=y" >> $config_target_mak
echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
+ echo "CONFIG_TCG=y" >> $config_target_mak
fi
if test "$target_linux_user" = "yes" ; then
echo "CONFIG_LINUX_USER=y" >> $config_target_mak
@@ -6248,6 +6258,22 @@ if test "$target_bsd_user" = "yes" ; then
echo "CONFIG_BSD_USER=y" >> $config_target_mak
fi
+case "$target_name" in
+ alpha|arm|armeb|aarch64|cris|hppa|lm32|m68k|microblaze|microblazeel|mips|mipsel| \
+ mipsn32|mipsn32el|mips64|mips64el|moxie|nios2|or1k|ppc|ppcemb|ppc64|ppc64le|ppc64abi32| \
+ sh4|sh4eb|sparc|sparc64|sparc32plus|s390x|tilegx|tricore|unicore32|xtensa|xtensaeb)
+ if test "$target_softmmu" = "yes" ; then
+ echo "CONFIG_TCG=y" >> $config_target_mak
+ fi
+ ;;
+esac
+case "$target_name" in
+ i386|x86_64)
+ if test "$tcg" = "yes" -a "$target_softmmu" = "yes" ; then
+ echo "CONFIG_TCG=y" >> $config_target_mak
+ fi
+ ;;
+esac
# generate QEMU_CFLAGS/LDFLAGS for targets
cflags=""
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 13:10 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
` (14 subsequent siblings)
16 siblings, 1 reply; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Need to disable the tcg related code in the vl.c if the
disable-tcg option is added into ./configure command.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
cpus.c | 3 ++-
vl.c | 12 ++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/cpus.c b/cpus.c
index 14bb8d5..a86ea10 100644
--- a/cpus.c
+++ b/cpus.c
@@ -170,7 +170,7 @@ bool mttcg_enabled;
* implicit memory order requirements which would likely slow things
* down a lot.
*/
-
+#ifdef CONFIG_TCG
static bool check_tcg_memory_orders_compatible(void)
{
#if defined(TCG_GUEST_DEFAULT_MO) && defined(TCG_TARGET_DEFAULT_MO)
@@ -223,6 +223,7 @@ void qemu_tcg_configure(QemuOpts *opts, Error **errp)
mttcg_enabled = default_mttcg_enabled();
}
}
+#endif
/* The current number of executed instructions is based on what we
* originally budgeted minus the current state of the decrementing
diff --git a/vl.c b/vl.c
index 59fea15..a01faf9 100644
--- a/vl.c
+++ b/vl.c
@@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
}
break;
case QEMU_OPTION_no_kvm:
+#ifdef CONFIG_TCG
olist = qemu_find_opts("machine");
qemu_opts_parse_noisily(olist, "accel=tcg", false);
+#else
+ error_report("TCG is disabled");
+ exit(1);
+#endif
break;
case QEMU_OPTION_no_kvm_pit: {
error_report("warning: ignoring deprecated option");
@@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
configure_rtc(opts);
break;
case QEMU_OPTION_tb_size:
+#ifdef CONFIG_TCG
tcg_tb_size = strtol(optarg, NULL, 0);
if (tcg_tb_size < 0) {
tcg_tb_size = 0;
}
+#else
+ error_report("TCG is disabled");
+ exit(1);
+#endif
break;
case QEMU_OPTION_icount:
icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
@@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
qemu_opts_del(icount_opts);
}
+#ifdef CONFIG_TCG
qemu_tcg_configure(accel_opts, &error_fatal);
+#endif
if (default_net) {
QemuOptsList *net = qemu_find_opts("net");
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 13:10 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled() Yang Zhong
` (13 subsequent siblings)
16 siblings, 1 reply; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Move tcg_handle_interrupt() from translate-common.c to
translate-all.c.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/tcg/Makefile.objs | 2 +-
accel/tcg/translate-all.c | 30 ++++++++++++++++++++++++
accel/tcg/translate-common.c | 56 --------------------------------------------
cpus.c | 1 +
4 files changed, 32 insertions(+), 57 deletions(-)
delete mode 100644 accel/tcg/translate-common.c
diff --git a/accel/tcg/Makefile.objs b/accel/tcg/Makefile.objs
index f173cd5..70cd474 100644
--- a/accel/tcg/Makefile.objs
+++ b/accel/tcg/Makefile.objs
@@ -1,3 +1,3 @@
obj-$(CONFIG_SOFTMMU) += tcg-all.o
obj-$(CONFIG_SOFTMMU) += cputlb.o
-obj-y += cpu-exec.o cpu-exec-common.o translate-all.o translate-common.o
+obj-y += cpu-exec.o cpu-exec-common.o translate-all.o
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 7b25a16..bb303e0 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -798,6 +798,33 @@ static void tb_htable_init(void)
qht_init(&tcg_ctx.tb_ctx.htable, CODE_GEN_HTABLE_SIZE, mode);
}
+#ifndef CONFIG_USER_ONLY
+/* mask must never be zero, except for A20 change call */
+static void tcg_handle_interrupt(CPUState *cpu, int mask)
+{
+ int old_mask;
+ g_assert(qemu_mutex_iothread_locked());
+
+ old_mask = cpu->interrupt_request;
+ cpu->interrupt_request |= mask;
+
+ /*
+ * If called from iothread context, wake the target cpu in
+ * case its halted.
+ */
+ if (!qemu_cpu_is_self(cpu)) {
+ qemu_cpu_kick(cpu);
+ } else {
+ cpu->icount_decr.u16.high = -1;
+ if (use_icount &&
+ !cpu->can_do_io
+ && (mask & ~old_mask) != 0) {
+ cpu_abort(cpu, "Raised interrupt while not in I/O function");
+ }
+ }
+}
+#endif
+
/* Must be called before using the QEMU cpus. 'tb_size' is the size
(in bytes) allocated to the translation buffer. Zero means default
size. */
@@ -807,6 +834,9 @@ void tcg_exec_init(unsigned long tb_size)
page_init();
tb_htable_init();
code_gen_alloc(tb_size);
+#ifndef CONFIG_USER_ONLY
+ cpu_interrupt_handler = tcg_handle_interrupt;
+#endif
#if defined(CONFIG_SOFTMMU)
/* There's no guest base to take into account, so go ahead and
initialize the prologue now. */
diff --git a/accel/tcg/translate-common.c b/accel/tcg/translate-common.c
deleted file mode 100644
index 40fe5a1..0000000
--- a/accel/tcg/translate-common.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Host code generation common components
- *
- * Copyright (c) 2015 Peter Crosthwaite <crosthwaite.peter@gmail.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "qemu/osdep.h"
-#include "qemu-common.h"
-#include "qom/cpu.h"
-#include "sysemu/cpus.h"
-#include "qemu/main-loop.h"
-
-uintptr_t qemu_real_host_page_size;
-intptr_t qemu_real_host_page_mask;
-
-#ifndef CONFIG_USER_ONLY
-/* mask must never be zero, except for A20 change call */
-static void tcg_handle_interrupt(CPUState *cpu, int mask)
-{
- int old_mask;
- g_assert(qemu_mutex_iothread_locked());
-
- old_mask = cpu->interrupt_request;
- cpu->interrupt_request |= mask;
-
- /*
- * If called from iothread context, wake the target cpu in
- * case its halted.
- */
- if (!qemu_cpu_is_self(cpu)) {
- qemu_cpu_kick(cpu);
- } else {
- cpu->icount_decr.u16.high = -1;
- if (use_icount &&
- !cpu->can_do_io
- && (mask & ~old_mask) != 0) {
- cpu_abort(cpu, "Raised interrupt while not in I/O function");
- }
- }
-}
-
-CPUInterruptHandler cpu_interrupt_handler = tcg_handle_interrupt;
-#endif
diff --git a/cpus.c b/cpus.c
index a86ea10..6ff3e37 100644
--- a/cpus.c
+++ b/cpus.c
@@ -76,6 +76,7 @@ int64_t max_advance;
/* vcpu throttling controls */
static QEMUTimer *throttle_timer;
static unsigned int throttle_percentage;
+CPUInterruptHandler cpu_interrupt_handler;
#define CPU_THROTTLE_PCT_MIN 1
#define CPU_THROTTLE_PCT_MAX 99
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled()
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (2 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function Yang Zhong
` (12 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Change the tcg_enabled() and make sure user build still enable tcg
even x86 softmmu disable tcg.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/tcg/tcg-all.c | 2 +-
accel/tcg/translate-all.c | 6 +-----
bsd-user/main.c | 1 +
include/qemu-common.h | 7 ++++++-
linux-user/main.c | 2 +-
5 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index dba9931..a313d14 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -29,7 +29,7 @@
#include "qom/object.h"
int tcg_tb_size;
-static bool tcg_allowed = true;
+bool tcg_allowed;
static int tcg_init(MachineState *ms)
{
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index bb303e0..4ebf7b0 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -830,6 +830,7 @@ static void tcg_handle_interrupt(CPUState *cpu, int mask)
size. */
void tcg_exec_init(unsigned long tb_size)
{
+ tcg_allowed = true;
cpu_gen_init();
page_init();
tb_htable_init();
@@ -844,11 +845,6 @@ void tcg_exec_init(unsigned long tb_size)
#endif
}
-bool tcg_enabled(void)
-{
- return tcg_ctx.code_gen_buffer != NULL;
-}
-
/*
* Allocate a new translation block. Flush the translation buffer if
* too many translation blocks or too much generated code.
diff --git a/bsd-user/main.c b/bsd-user/main.c
index 04f95dd..276aea7 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -35,6 +35,7 @@
#include "trace/control.h"
#include "glib-compat.h"
+bool tcg_allowed = true;
int singlestep;
unsigned long mmap_min_addr;
unsigned long guest_base;
diff --git a/include/qemu-common.h b/include/qemu-common.h
index 387ef52..b5adbfa 100644
--- a/include/qemu-common.h
+++ b/include/qemu-common.h
@@ -76,8 +76,13 @@ int qemu_openpty_raw(int *aslave, char *pty_name);
sendto(sockfd, buf, len, flags, destaddr, addrlen)
#endif
+extern bool tcg_allowed;
void tcg_exec_init(unsigned long tb_size);
-bool tcg_enabled(void);
+#ifdef CONFIG_TCG
+#define tcg_enabled() (tcg_allowed)
+#else
+#define tcg_enabled() 0
+#endif
void cpu_exec_init_all(void);
void cpu_exec_step_atomic(CPUState *cpu);
diff --git a/linux-user/main.c b/linux-user/main.c
index ad03c9e..a11508a 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -38,7 +38,7 @@
#include "glib-compat.h"
char *exec_path;
-
+bool tcg_allowed = true;
int singlestep;
static const char *filename;
static const char *argv0;
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (3 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled() Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code Yang Zhong
` (11 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
translate-all.c will be disabled if tcg is disabled in the build,
so page_size_init() function and related variables will be moved
to exec.c file.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/tcg/translate-all.c | 18 ------------------
exec.c | 20 ++++++++++++++++++++
2 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 4ebf7b0..e4cfdd1 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -112,9 +112,6 @@ typedef struct PageDesc {
#define V_L2_BITS 10
#define V_L2_SIZE (1 << V_L2_BITS)
-uintptr_t qemu_host_page_size;
-intptr_t qemu_host_page_mask;
-
/*
* L1 Mapping properties
*/
@@ -363,21 +360,6 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t retaddr)
return r;
}
-void page_size_init(void)
-{
- /* NOTE: we can always suppose that qemu_host_page_size >=
- TARGET_PAGE_SIZE */
- qemu_real_host_page_size = getpagesize();
- qemu_real_host_page_mask = -(intptr_t)qemu_real_host_page_size;
- if (qemu_host_page_size == 0) {
- qemu_host_page_size = qemu_real_host_page_size;
- }
- if (qemu_host_page_size < TARGET_PAGE_SIZE) {
- qemu_host_page_size = TARGET_PAGE_SIZE;
- }
- qemu_host_page_mask = -(intptr_t)qemu_host_page_size;
-}
-
static void page_init(void)
{
page_size_init();
diff --git a/exec.c b/exec.c
index 42ad1ea..ee61915 100644
--- a/exec.c
+++ b/exec.c
@@ -118,6 +118,11 @@ __thread CPUState *current_cpu;
2 = Adaptive rate instruction counting. */
int use_icount;
+uintptr_t qemu_host_page_size;
+intptr_t qemu_host_page_mask;
+uintptr_t qemu_real_host_page_size;
+intptr_t qemu_real_host_page_mask;
+
bool set_preferred_target_page_bits(int bits)
{
/* The target page size is the lowest common denominator for all
@@ -3590,3 +3595,18 @@ err:
}
#endif
+
+void page_size_init(void)
+{
+ /* NOTE: we can always suppose that qemu_host_page_size >=
+ TARGET_PAGE_SIZE */
+ qemu_real_host_page_size = getpagesize();
+ qemu_real_host_page_mask = -(intptr_t)qemu_real_host_page_size;
+ if (qemu_host_page_size == 0) {
+ qemu_host_page_size = qemu_real_host_page_size;
+ }
+ if (qemu_host_page_size < TARGET_PAGE_SIZE) {
+ qemu_host_page_size = TARGET_PAGE_SIZE;
+ }
+ qemu_host_page_mask = -(intptr_t)qemu_host_page_size;
+}
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (4 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function Yang Zhong
` (10 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Since Paolo's below patch has fixed A20 issue
commit bbfa326fc8028e275eddf8c9965c2a1b59405b2e
target/i386: enable A20 automatically in system management mod
The tcg code in kvmvapic.c is NOT useful, those code need remove.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
hw/i386/kvmvapic.c | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index 82a4955..5b7be5a 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -18,7 +18,6 @@
#include "sysemu/kvm.h"
#include "hw/i386/apic_internal.h"
#include "hw/sysbus.h"
-#include "tcg/tcg.h"
#define VAPIC_IO_PORT 0x7e
@@ -396,13 +395,9 @@ static void patch_call(VAPICROMState *s, X86CPU *cpu, target_ulong ip,
static void patch_instruction(VAPICROMState *s, X86CPU *cpu, target_ulong ip)
{
CPUState *cs = CPU(cpu);
- CPUX86State *env = &cpu->env;
VAPICHandlers *handlers;
uint8_t opcode[2];
uint32_t imm32 = 0;
- target_ulong current_pc = 0;
- target_ulong current_cs_base = 0;
- uint32_t current_flags = 0;
if (smp_cpus == 1) {
handlers = &s->rom_state.up;
@@ -410,17 +405,6 @@ static void patch_instruction(VAPICROMState *s, X86CPU *cpu, target_ulong ip)
handlers = &s->rom_state.mp;
}
- if (!kvm_enabled()) {
- cpu_get_tb_cpu_state(env, ¤t_pc, ¤t_cs_base,
- ¤t_flags);
- /* Account this instruction, because we will exit the tb.
- This is the first instruction in the block. Therefore
- there is no need in restoring CPU state. */
- if (use_icount) {
- --cs->icount_decr.u16.low;
- }
- }
-
pause_all_vcpus();
cpu_memory_rw_debug(cs, ip, opcode, sizeof(opcode), 0);
@@ -455,14 +439,6 @@ static void patch_instruction(VAPICROMState *s, X86CPU *cpu, target_ulong ip)
}
resume_all_vcpus();
-
- if (!kvm_enabled()) {
- /* Both tb_lock and iothread_mutex will be reset when
- * longjmps back into the cpu_exec loop. */
- tb_lock();
- tb_gen_code(cs, current_pc, current_cs_base, current_flags, 1);
- cpu_loop_exit_noexc(cs);
- }
}
void vapic_report_tpr_access(DeviceState *dev, CPUState *cs, target_ulong ip,
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (5 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static Yang Zhong
` (9 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Move cpu_sync_bndcs_hflags() function from mpx_helper.c
to helper.c because mpx_helper.c need be disabled when
tcg is disabled.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
target/i386/helper.c | 34 +++++++++++++++++++++++++++++++++-
target/i386/mpx_helper.c | 30 ------------------------------
2 files changed, 33 insertions(+), 31 deletions(-)
diff --git a/target/i386/helper.c b/target/i386/helper.c
index ef05059..87fd705 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -29,6 +29,36 @@
#include "hw/i386/apic_internal.h"
#endif
+void cpu_sync_bndcs_hflags(CPUX86State *env)
+{
+ uint32_t hflags = env->hflags;
+ uint32_t hflags2 = env->hflags2;
+ uint32_t bndcsr;
+
+ if ((hflags & HF_CPL_MASK) == 3) {
+ bndcsr = env->bndcs_regs.cfgu;
+ } else {
+ bndcsr = env->msr_bndcfgs;
+ }
+
+ if ((env->cr[4] & CR4_OSXSAVE_MASK)
+ && (env->xcr0 & XSTATE_BNDCSR_MASK)
+ && (bndcsr & BNDCFG_ENABLE)) {
+ hflags |= HF_MPX_EN_MASK;
+ } else {
+ hflags &= ~HF_MPX_EN_MASK;
+ }
+
+ if (bndcsr & BNDCFG_BNDPRESERVE) {
+ hflags2 |= HF2_MPX_PR_MASK;
+ } else {
+ hflags2 &= ~HF2_MPX_PR_MASK;
+ }
+
+ env->hflags = hflags;
+ env->hflags2 = hflags2;
+}
+
static void cpu_x86_version(CPUX86State *env, int *family, int *model)
{
int cpuver = env->cpuid_version;
@@ -1302,10 +1332,12 @@ void cpu_report_tpr_access(CPUX86State *env, TPRAccess access)
env->tpr_access_type = access;
cpu_interrupt(cs, CPU_INTERRUPT_TPR);
- } else {
+ } else if (tcg_enabled()) {
cpu_restore_state(cs, cs->mem_io_pc);
apic_handle_tpr_access_report(cpu->apic_state, env->eip, access);
+ } else {
+ abort();
}
}
#endif /* !CONFIG_USER_ONLY */
diff --git a/target/i386/mpx_helper.c b/target/i386/mpx_helper.c
index 7e44820..ade5d24 100644
--- a/target/i386/mpx_helper.c
+++ b/target/i386/mpx_helper.c
@@ -24,36 +24,6 @@
#include "exec/exec-all.h"
-void cpu_sync_bndcs_hflags(CPUX86State *env)
-{
- uint32_t hflags = env->hflags;
- uint32_t hflags2 = env->hflags2;
- uint32_t bndcsr;
-
- if ((hflags & HF_CPL_MASK) == 3) {
- bndcsr = env->bndcs_regs.cfgu;
- } else {
- bndcsr = env->msr_bndcfgs;
- }
-
- if ((env->cr[4] & CR4_OSXSAVE_MASK)
- && (env->xcr0 & XSTATE_BNDCSR_MASK)
- && (bndcsr & BNDCFG_ENABLE)) {
- hflags |= HF_MPX_EN_MASK;
- } else {
- hflags &= ~HF_MPX_EN_MASK;
- }
-
- if (bndcsr & BNDCFG_BNDPRESERVE) {
- hflags2 |= HF2_MPX_PR_MASK;
- } else {
- hflags2 &= ~HF2_MPX_PR_MASK;
- }
-
- env->hflags = hflags;
- env->hflags2 = hflags2;
-}
-
void helper_bndck(CPUX86State *env, uint32_t fail)
{
if (unlikely(fail)) {
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (6 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/ Yang Zhong
` (8 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Move cpu_get_fp80()/cpu_set_fp80() from fpu_helper.c to
machine.c because fpu_helper.c will be disabled if tcg is
disabled in the build.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
target/i386/cpu.h | 2 --
target/i386/fpu_helper.c | 18 ------------------
target/i386/machine.c | 18 ++++++++++++++++++
3 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index de0551f..8b3b535 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1418,8 +1418,6 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsigned int selector,
/* op_helper.c */
/* used for debug or cpu save/restore */
-void cpu_get_fp80(uint64_t *pmant, uint16_t *pexp, floatx80 f);
-floatx80 cpu_set_fp80(uint64_t mant, uint16_t upper);
/* cpu-exec.c */
/* the following helpers are only usable in user mode simulation as
diff --git a/target/i386/fpu_helper.c b/target/i386/fpu_helper.c
index 69ea33a..34fb5fc 100644
--- a/target/i386/fpu_helper.c
+++ b/target/i386/fpu_helper.c
@@ -1539,24 +1539,6 @@ void helper_xsetbv(CPUX86State *env, uint32_t ecx, uint64_t mask)
raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
-void cpu_get_fp80(uint64_t *pmant, uint16_t *pexp, floatx80 f)
-{
- CPU_LDoubleU temp;
-
- temp.d = f;
- *pmant = temp.l.lower;
- *pexp = temp.l.upper;
-}
-
-floatx80 cpu_set_fp80(uint64_t mant, uint16_t upper)
-{
- CPU_LDoubleU temp;
-
- temp.l.upper = upper;
- temp.l.lower = mant;
- return temp.d;
-}
-
/* MMX/SSE */
/* XXX: optimize by storing fptt and fptags in the static cpu state */
diff --git a/target/i386/machine.c b/target/i386/machine.c
index 8c7a822..53587ae 100644
--- a/target/i386/machine.c
+++ b/target/i386/machine.c
@@ -142,6 +142,24 @@ typedef struct x86_FPReg_tmp {
uint16_t tmp_exp;
} x86_FPReg_tmp;
+static void cpu_get_fp80(uint64_t *pmant, uint16_t *pexp, floatx80 f)
+{
+ CPU_LDoubleU temp;
+
+ temp.d = f;
+ *pmant = temp.l.lower;
+ *pexp = temp.l.upper;
+}
+
+static floatx80 cpu_set_fp80(uint64_t mant, uint16_t upper)
+{
+ CPU_LDoubleU temp;
+
+ temp.l.upper = upper;
+ temp.l.lower = mant;
+ return temp.d;
+}
+
static void fpreg_pre_save(void *opaque)
{
x86_FPReg_tmp *tmp = opaque;
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (7 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions Yang Zhong
` (7 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
If tcg is disabled, the functions in tcg-stub.c file will be called.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/stubs/Makefile.objs | 1 +
accel/stubs/tcg-stub.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+)
create mode 100644 accel/stubs/tcg-stub.c
diff --git a/accel/stubs/Makefile.objs b/accel/stubs/Makefile.objs
index bd5794f..fdfbf73 100644
--- a/accel/stubs/Makefile.objs
+++ b/accel/stubs/Makefile.objs
@@ -1 +1,2 @@
obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
+obj-$(call lnot,$(CONFIG_TCG)) += tcg-stub.o
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
new file mode 100644
index 0000000..12c41dd
--- /dev/null
+++ b/accel/stubs/tcg-stub.c
@@ -0,0 +1,103 @@
+/*
+ * QEMU TCG accelerator stub
+ *
+ * Copyright Red Hat, Inc. 2013
+ *
+ * Author: Paolo Bonzini <pbonzini@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "cpu.h"
+#include "tcg/tcg.h"
+#include "exec/cpu-common.h"
+#include "exec/exec-all.h"
+#include "translate-all.h"
+#include "exec/cpu-all.h"
+
+void tb_flush(CPUState *cpu)
+{
+}
+
+void tb_invalidate_phys_page_fast(tb_page_addr_t start, int len)
+{
+}
+
+void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end)
+{
+}
+
+void tb_check_watchpoint(CPUState *cpu)
+{
+}
+
+TranslationBlock *tb_gen_code(CPUState *cpu,
+ target_ulong pc, target_ulong cs_base,
+ uint32_t flags, int cflags)
+{
+ return NULL;
+}
+
+void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length)
+{
+}
+
+void tlb_set_dirty(CPUState *cpu, target_ulong vaddr)
+{
+}
+
+bool cpu_restore_state(CPUState *cpu, uintptr_t searched_pc)
+{
+ return false;
+}
+
+void update_fp_status(CPUX86State *env)
+{
+}
+
+void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
+{
+}
+
+void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
+{
+}
+
+void cpu_loop_exit(CPUState *cpu)
+{
+ abort();
+}
+
+void cpu_loop_exit_noexc(CPUState *cpu)
+{
+ abort();
+}
+
+void raise_exception(CPUX86State *env, int exception_index)
+{
+ abort();
+}
+
+void raise_exception_err_ra(CPUX86State *env, int exception_index,
+ int error_code, uintptr_t retaddr)
+{
+ abort();
+}
+
+void x86_cpu_do_interrupt(CPUState *cs)
+{
+}
+
+bool x86_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
+{
+ return false;
+}
+
+int cpu_exec(CPUState *cpu)
+{
+ abort();
+}
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (8 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/ Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
` (6 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Move tb_lock()/tb_unlock()/tb_lock_reset() from tcg.h to
translate-all.h. tb_lock()/tb_unlock() need be impelemnted
in accel/stubs/tcg-stub.c.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/stubs/tcg-stub.c | 8 ++++++++
accel/tcg/cpu-exec.c | 1 +
accel/tcg/cputlb.c | 1 +
accel/tcg/translate-all.h | 3 +++
tcg/tcg.h | 4 ----
trace/control-target.c | 1 -
6 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 12c41dd..dafb1d0 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -19,6 +19,14 @@
#include "translate-all.h"
#include "exec/cpu-all.h"
+void tb_lock(void)
+{
+}
+
+void tb_unlock(void)
+{
+}
+
void tb_flush(CPUState *cpu)
{
}
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index 3581618..03b4ea2 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -21,6 +21,7 @@
#include "trace.h"
#include "disas/disas.h"
#include "exec/exec-all.h"
+#include "translate-all.h"
#include "tcg.h"
#include "qemu/atomic.h"
#include "sysemu/qtest.h"
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index 743776a..dcbea26 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -21,6 +21,7 @@
#include "qemu/main-loop.h"
#include "cpu.h"
#include "exec/exec-all.h"
+#include "translate-all.h"
#include "exec/memory.h"
#include "exec/address-spaces.h"
#include "exec/cpu_ldst.h"
diff --git a/accel/tcg/translate-all.h b/accel/tcg/translate-all.h
index ba8e4d6..4774f78 100644
--- a/accel/tcg/translate-all.h
+++ b/accel/tcg/translate-all.h
@@ -23,6 +23,9 @@
/* translate-all.c */
+void tb_lock(void);
+void tb_unlock(void);
+void tb_lock_reset(void);
void tb_invalidate_phys_page_fast(tb_page_addr_t start, int len);
void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
int is_cpu_write_access);
diff --git a/tcg/tcg.h b/tcg/tcg.h
index 5ec48d1..a5ff00c 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -757,10 +757,6 @@ static inline bool tcg_op_buf_full(void)
void *tcg_malloc_internal(TCGContext *s, int size);
void tcg_pool_reset(TCGContext *s);
-void tb_lock(void);
-void tb_unlock(void);
-void tb_lock_reset(void);
-
/* Called with tb_lock held. */
static inline void *tcg_malloc(int size)
{
diff --git a/trace/control-target.c b/trace/control-target.c
index 6266e63..2a5efc7 100644
--- a/trace/control-target.c
+++ b/trace/control-target.c
@@ -11,7 +11,6 @@
#include "cpu.h"
#include "trace-root.h"
#include "trace/control.h"
-#include "translate-all.h"
void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state)
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (9 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 13:15 ` Paolo Bonzini
2017-06-21 22:36 ` Richard Henderson
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
` (5 subsequent siblings)
16 siblings, 2 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
file if tcg is disabled.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/stubs/tcg-stub.c | 8 ++++++++
target/i386/cpu.h | 15 +++++++++++++--
target/i386/fpu_helper.c | 8 +++-----
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index dafb1d0..91625a8 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
{
}
+void tcg_update_mxcsr(CPUX86State *env)
+{
+}
+
+void tcg_set_fpuc(CPUX86State *env)
+{
+}
+
void cpu_loop_exit(CPUState *cpu)
{
abort();
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 8b3b535..229b216 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1643,8 +1643,19 @@ static inline int32_t x86_get_a20_mask(CPUX86State *env)
}
/* fpu_helper.c */
-void cpu_set_mxcsr(CPUX86State *env, uint32_t val);
-void cpu_set_fpuc(CPUX86State *env, uint16_t val);
+void tcg_update_mxcsr(CPUX86State *env);
+void tcg_set_fpuc(CPUX86State *env);
+static inline void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
+{
+ env->mxcsr = mxcsr;
+ tcg_update_mxcsr(env);
+}
+
+static inline void cpu_set_fpuc(CPUX86State *env, uint16_t fpuc)
+{
+ env->fpuc = fpuc;
+ tcg_set_fpuc(env);
+}
/* mem_helper.c */
void helper_lock_init(void);
diff --git a/target/i386/fpu_helper.c b/target/i386/fpu_helper.c
index 34fb5fc..a7550c9 100644
--- a/target/i386/fpu_helper.c
+++ b/target/i386/fpu_helper.c
@@ -1550,12 +1550,11 @@ void helper_xsetbv(CPUX86State *env, uint32_t ecx, uint64_t mask)
#define SSE_RC_CHOP 0x6000
#define SSE_FZ 0x8000
-void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
+void tcg_update_mxcsr(CPUX86State *env)
{
+ uint32_t mxcsr = env->mxcsr;
int rnd_type;
- env->mxcsr = mxcsr;
-
/* set rounding mode */
switch (mxcsr & SSE_RC_MASK) {
default:
@@ -1581,9 +1580,8 @@ void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
set_flush_to_zero((mxcsr & SSE_FZ) ? 1 : 0, &env->fp_status);
}
-void cpu_set_fpuc(CPUX86State *env, uint16_t val)
+void tcg_set_fpuc(CPUX86State *env)
{
- env->fpuc = val;
update_fp_status(env);
}
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range()
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (10 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 13:17 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
` (4 subsequent siblings)
16 siblings, 1 reply; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Remove the inline defintion of flush_icache_range() in tcg/i386/tcg-target.h.
add the flush_icache_range() implementation in tcg-target.inc.c for kvm/tcg
and flush_icache_range() implementation in tcg-stub.c for disable-tcg.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/stubs/tcg-stub.c | 4 ++++
tcg/i386/tcg-target.h | 5 ++---
tcg/i386/tcg-target.inc.c | 4 ++++
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 91625a8..85b0239 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -83,6 +83,10 @@ void tcg_set_fpuc(CPUX86State *env)
{
}
+void flush_icache_range(uintptr_t start, uintptr_t stop)
+{
+}
+
void cpu_loop_exit(CPUState *cpu)
{
abort();
diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h
index 73a15f7..7559cb8 100644
--- a/tcg/i386/tcg-target.h
+++ b/tcg/i386/tcg-target.h
@@ -162,9 +162,8 @@ extern bool have_popcnt;
# define TCG_AREG0 TCG_REG_EBP
#endif
-static inline void flush_icache_range(uintptr_t start, uintptr_t stop)
-{
-}
+void flush_icache_range(uintptr_t start, uintptr_t stop);
+
/* This defines the natural memory order supported by this
* architecture before guarantees made by various barrier
diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c
index 01e3b4e..6572efc 100644
--- a/tcg/i386/tcg-target.inc.c
+++ b/tcg/i386/tcg-target.inc.c
@@ -2751,3 +2751,7 @@ void tcg_register_jit(void *buf, size_t buf_size)
tcg_register_jit_int(buf, buf_size, &debug_frame, sizeof(debug_frame));
}
#endif
+
+void flush_icache_range(uintptr_t start, uintptr_t stop)
+{
+}
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (11 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
@ 2017-06-21 10:19 ` Yang Zhong
2017-06-21 22:24 ` Richard Henderson
2017-06-21 10:20 ` [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header Yang Zhong
` (3 subsequent siblings)
16 siblings, 1 reply; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:19 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Add the CONFIG_TCG for CPU_COMMON_TLB in the CPUX86State struct.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
include/exec/cpu-defs.h | 4 +++-
target/i386/cpu.h | 5 ++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index 5f4e303..bc8e7f8 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -25,7 +25,9 @@
#include "qemu/host-utils.h"
#include "qemu/queue.h"
+#ifdef CONFIG_TCG
#include "tcg-target.h"
+#endif
#ifndef CONFIG_USER_ONLY
#include "exec/hwaddr.h"
#endif
@@ -54,7 +56,7 @@ typedef uint64_t target_ulong;
#error TARGET_LONG_SIZE undefined
#endif
-#if !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
/* use a fully associative victim tlb of 8 entries */
#define CPU_VTLB_SIZE 8
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 229b216..d67b601 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -52,7 +52,9 @@
#include "exec/cpu-defs.h"
+#ifdef CONFIG_TCG
#include "fpu/softfloat.h"
+#endif
#define R_EAX 0
#define R_ECX 1
@@ -1130,8 +1132,9 @@ typedef struct CPUX86State {
/* Fields up to this point are cleared by a CPU reset */
struct {} end_reset_fields;
-
+#ifdef CONFIG_TCG
CPU_COMMON
+#endif
/* Fields after CPU_COMMON are preserved across CPU reset. */
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (12 preceding siblings ...)
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
@ 2017-06-21 10:20 ` Yang Zhong
2017-06-21 10:20 ` [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles Yang Zhong
` (2 subsequent siblings)
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:20 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Add the CONFIG_TCG for exec-all.h. Since function tlb_set_page_with_attrs()
is defined in ./accel/tcg/cputlb.c, which will be disabled if tcg is disabled.
This function need be implemented in accel/stubs/tcg-stub.c for disable-tcg.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
accel/stubs/tcg-stub.c | 6 +++++
include/exec/cputlb.h | 2 +-
include/exec/exec-all.h | 53 ++++++++++++++++++++++++---------------------
include/exec/helper-proto.h | 2 ++
4 files changed, 37 insertions(+), 26 deletions(-)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 85b0239..a189493 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -63,6 +63,12 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t searched_pc)
return false;
}
+void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
+ hwaddr paddr, MemTxAttrs attrs,
+ int prot, int mmu_idx, target_ulong size)
+{
+}
+
void update_fp_status(CPUX86State *env)
{
}
diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h
index 3f94178..cf296d9 100644
--- a/include/exec/cputlb.h
+++ b/include/exec/cputlb.h
@@ -19,7 +19,7 @@
#ifndef CPUTLB_H
#define CPUTLB_H
-#if !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
/* cputlb.c */
void tlb_protect_code(ram_addr_t ram_addr);
void tlb_unprotect_code(ram_addr_t ram_addr);
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 87ae10b..f5d01eb 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -82,6 +82,34 @@ void cpu_reloading_memory_map(void);
* Note that with KVM only one address space is supported.
*/
void cpu_address_space_init(CPUState *cpu, AddressSpace *as, int asidx);
+/**
+ * tlb_set_page_with_attrs:
+ * @cpu: CPU to add this TLB entry for
+ * @vaddr: virtual address of page to add entry for
+ * @paddr: physical address of the page
+ * @attrs: memory transaction attributes
+ * @prot: access permissions (PAGE_READ/PAGE_WRITE/PAGE_EXEC bits)
+ * @mmu_idx: MMU index to insert TLB entry for
+ * @size: size of the page in bytes
+ *
+ * Add an entry to this CPU's TLB (a mapping from virtual address
+ * @vaddr to physical address @paddr) with the specified memory
+ * transaction attributes. This is generally called by the target CPU
+ * specific code after it has been called through the tlb_fill()
+ * entry point and performed a successful page table walk to find
+ * the physical address and attributes for the virtual address
+ * which provoked the TLB miss.
+ *
+ * At most one entry for a given virtual address is permitted. Only a
+ * single TARGET_PAGE_SIZE region is mapped; the supplied @size is only
+ * used by tlb_flush_page.
+ */
+void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
+ hwaddr paddr, MemTxAttrs attrs,
+ int prot, int mmu_idx, target_ulong size);
+#endif
+
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
/* cputlb.c */
/**
* tlb_flush_page:
@@ -205,31 +233,6 @@ void tlb_flush_by_mmuidx_all_cpus(CPUState *cpu, uint16_t idxmap);
* depend on when the guests translation ends the TB.
*/
void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, uint16_t idxmap);
-/**
- * tlb_set_page_with_attrs:
- * @cpu: CPU to add this TLB entry for
- * @vaddr: virtual address of page to add entry for
- * @paddr: physical address of the page
- * @attrs: memory transaction attributes
- * @prot: access permissions (PAGE_READ/PAGE_WRITE/PAGE_EXEC bits)
- * @mmu_idx: MMU index to insert TLB entry for
- * @size: size of the page in bytes
- *
- * Add an entry to this CPU's TLB (a mapping from virtual address
- * @vaddr to physical address @paddr) with the specified memory
- * transaction attributes. This is generally called by the target CPU
- * specific code after it has been called through the tlb_fill()
- * entry point and performed a successful page table walk to find
- * the physical address and attributes for the virtual address
- * which provoked the TLB miss.
- *
- * At most one entry for a given virtual address is permitted. Only a
- * single TARGET_PAGE_SIZE region is mapped; the supplied @size is only
- * used by tlb_flush_page.
- */
-void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
- hwaddr paddr, MemTxAttrs attrs,
- int prot, int mmu_idx, target_ulong size);
/* tlb_set_page:
*
* This function is equivalent to calling tlb_set_page_with_attrs()
diff --git a/include/exec/helper-proto.h b/include/exec/helper-proto.h
index 954bef8..417c7b0 100644
--- a/include/exec/helper-proto.h
+++ b/include/exec/helper-proto.h
@@ -28,7 +28,9 @@ dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
#include "helper.h"
#include "trace/generated-helpers.h"
+#ifdef CONFIG_TCG
#include "tcg-runtime.h"
+#endif
#undef DEF_HELPER_FLAGS_0
#undef DEF_HELPER_FLAGS_1
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (13 preceding siblings ...)
2017-06-21 10:20 ` [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header Yang Zhong
@ 2017-06-21 10:20 ` Yang Zhong
2017-06-21 12:03 ` [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build no-reply
2017-06-21 13:19 ` Paolo Bonzini
16 siblings, 0 replies; 37+ messages in thread
From: Yang Zhong @ 2017-06-21 10:20 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel, a.rigo, anthony.xu, Yang Zhong
Add the CONFIG_TCG for frontend and backend's files in the related
Makefiles.
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
Makefile.target | 4 ++--
accel/Makefile.objs | 2 +-
target/i386/Makefile.objs | 7 ++++---
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/Makefile.target b/Makefile.target
index 0066579..8e185d4 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -90,8 +90,8 @@ all: $(PROGS) stap
# cpu emulator library
obj-y += exec.o
obj-y += accel/
-obj-y += tcg/tcg.o tcg/tcg-op.o tcg/optimize.o
-obj-y += tcg/tcg-common.o tcg/tcg-runtime.o
+obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/optimize.o
+obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/tcg-runtime.o
obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
obj-y += fpu/softfloat.o
diff --git a/accel/Makefile.objs b/accel/Makefile.objs
index cd5702f..10666ed 100644
--- a/accel/Makefile.objs
+++ b/accel/Makefile.objs
@@ -1,4 +1,4 @@
obj-$(CONFIG_SOFTMMU) += accel.o
obj-y += kvm/
-obj-y += tcg/
+obj-$(CONFIG_TCG) += tcg/
obj-y += stubs/
diff --git a/target/i386/Makefile.objs b/target/i386/Makefile.objs
index 4fcb7f3..fee6c7e 100644
--- a/target/i386/Makefile.objs
+++ b/target/i386/Makefile.objs
@@ -1,6 +1,7 @@
-obj-y += translate.o helper.o cpu.o bpt_helper.o
-obj-y += excp_helper.o fpu_helper.o cc_helper.o int_helper.o svm_helper.o
-obj-y += smm_helper.o misc_helper.o mem_helper.o seg_helper.o mpx_helper.o
+obj-y += helper.o cpu.o cc_helper.o bpt_helper.o
+obj-$(CONFIG_TCG) += translate.o
+obj-$(CONFIG_TCG) += excp_helper.o fpu_helper.o int_helper.o svm_helper.o
+obj-$(CONFIG_TCG) += smm_helper.o misc_helper.o mem_helper.o seg_helper.o mpx_helper.o
obj-y += gdbstub.o
obj-$(CONFIG_SOFTMMU) += machine.o arch_memory_mapping.o arch_dump.o monitor.o
obj-$(CONFIG_KVM) += kvm.o hyperv.o
--
1.9.1
^ permalink raw reply related [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (14 preceding siblings ...)
2017-06-21 10:20 ` [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles Yang Zhong
@ 2017-06-21 12:03 ` no-reply
2017-06-21 13:19 ` Paolo Bonzini
16 siblings, 0 replies; 37+ messages in thread
From: no-reply @ 2017-06-21 12:03 UTC (permalink / raw)
To: yang.zhong; +Cc: famz, pbonzini, anthony.xu, qemu-devel, a.rigo
Hi,
This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.
Subject: [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build
Type: series
Message-id: 1498040401-16361-1-git-send-email-yang.zhong@intel.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-build@min-glib
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/20170621052935.20715-1-boqun.feng@gmail.com -> patchew/20170621052935.20715-1-boqun.feng@gmail.com
Switched to a new branch 'test'
2a3c9b8 tcg: add the CONFIG_TCG into Makefiles
da9879c tcg: add the CONFIG_TCG for header
ae35bc4 tcg: disable tcg in CPUX86State struct
683371b tcg: remove inline definition of flush_icache_range()
19f40a7 tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
45de90f tcg: move tb related lock functions
f18982e tcg: add the tcg-stub.c file into accel/stubs/
02b75fb tcg: make cpu_get_fp80()/cpu_set_fp80() static
6471aa7 tcg: move cpu_sync_bndcs_hflags() function
aa6f466 kvmvapic: remove tcg related code
a2356c5 tcg: move page_size_init() function
7cb58f7 tcg: change tcg_enabled()
cbf6842 tcg: tcg_handle_interrupt() function
1d2a17e vl: add CONFIG_TCG for tcg related code
3f7b2a9 configure: add the disable-tcg option
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-_5z78h0l/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
BUILD centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-_5z78h0l/src'
ARCHIVE qemu.tgz
ARCHIVE dtc.tgz
COPY RUNNER
RUN test-quick in qemu:centos6
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
ccache-3.1.6-2.el6.x86_64
epel-release-6-8.noarch
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
git-1.7.1-8.el6.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
make-3.81-23.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
tar-1.23-15.el6_8.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=libfdt-devel ccache tar git make gcc g++ flex bison zlib-devel glib2-devel SDL-devel pixman-devel epel-release
HOSTNAME=d592040c2a1e
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
TARGET_LIST=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES= dtc
DEBUG=
G_BROKEN_FILENAMES=1
CCACHE_HASHDIR=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install
/tmp/qemu-test/src/configure: line 4688: c++: command not found
No C++ compiler available; disabling C++ specific optional code
Install prefix /var/tmp/qemu-build/install
BIOS directory /var/tmp/qemu-build/install/share/qemu
binary directory /var/tmp/qemu-build/install/bin
library directory /var/tmp/qemu-build/install/lib
module directory /var/tmp/qemu-build/install/lib/qemu
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory /var/tmp/qemu-build/install/etc
local state directory /var/tmp/qemu-build/install/var
Manual directory /var/tmp/qemu-build/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman system
SDL support yes (1.2.14)
GTK support no
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support no
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
VNC support yes
VNC SASL support no
VNC JPEG support no
VNC PNG support no
xen support no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
TCG support yes
TCG debug enabled no
TCG interpreter no
HAX support no
RDMA support no
TCG interpreter no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support no
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
GEN aarch64-softmmu/config-devices.mak.tmp
mkdir -p dtc/libfdt
GEN x86_64-softmmu/config-devices.mak.tmp
GEN config-host.h
mkdir -p dtc/tests
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN aarch64-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN backends/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN trace-root.c
GEN accel/kvm/trace.h
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN backends/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
BISON dtc-parser.tab.c
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
GEN qga/qapi-generated/qga-qapi-types.h
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qint.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qfloat.o
CC qobject/qbool.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitops.o
CC util/bitmap.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC backends/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC ui/trace.o
CC net/trace.o
CC audio/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm_device_list.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/xen-common.o
CC stubs/vmgenid.o
CC stubs/xen-hvm.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qed.o
CC block/qed-gencb.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-glib.o
CC crypto/hmac.o
CC crypto/hmac-glib.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-platform.o
CC crypto/pbkdf.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-socket.o
CC io/channel-file.o
CC io/channel-watch.o
CC io/channel-tls.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-random.o
CC backends/rng-egd.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CC disas/i386.o
CC fsdev/qemu-fsdev-dummy.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/cadence_uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/vmmouse.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/unimp.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_passthrough.o
CC hw/tpm/tpm_util.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC migration/migration.o
CC hw/watchdog/wdt_aspeed.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
/tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
CC ui/sdl.o
CC ui/input-linux.o
CC ui/sdl_zoom.o
CC ui/x_keymap.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
AS optionrom/multiboot.o
CC qga/commands.o
AS optionrom/linuxboot.o
CC optionrom/linuxboot_dma.o
AS optionrom/kvmvapic.o
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
CC qga/guest-agent-command-state.o
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/kvmvapic.img
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.raw
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/kvmvapic.raw
SIGN optionrom/multiboot.bin
SIGN optionrom/linuxboot.bin
SIGN optionrom/linuxboot_dma.bin
SIGN optionrom/kvmvapic.bin
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
AR libqemustub.a
CC qemu-img.o
LINK qemu-io
LINK qemu-bridge-helper
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN x86_64-softmmu/config-target.h
CC x86_64-softmmu/exec.o
CC x86_64-softmmu/tcg/tcg.o
CC x86_64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/tcg/optimize.o
GEN aarch64-softmmu/hmp-commands.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
CC x86_64-softmmu/tcg/tcg-common.o
CC x86_64-softmmu/tcg/tcg-runtime.o
CC aarch64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg.o
CC x86_64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/disas.o
CC aarch64-softmmu/tcg/tcg-op.o
GEN x86_64-softmmu/gdbstub-xml.c
CC aarch64-softmmu/tcg/optimize.o
CC x86_64-softmmu/hax-stub.o
CC aarch64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/tcg/tcg-runtime.o
CC aarch64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/disas.o
CC x86_64-softmmu/arch_init.o
LINK qemu-ga
GEN aarch64-softmmu/gdbstub-xml.c
CC aarch64-softmmu/hax-stub.o
LINK qemu-img
CC aarch64-softmmu/arch_init.o
CC x86_64-softmmu/cpus.o
CC x86_64-softmmu/monitor.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC x86_64-softmmu/ioport.o
CC aarch64-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC aarch64-softmmu/gdbstub.o
CC x86_64-softmmu/numa.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/bootdevice.o
CC aarch64-softmmu/balloon.o
CC x86_64-softmmu/memory.o
CC aarch64-softmmu/ioport.o
CC aarch64-softmmu/numa.o
CC aarch64-softmmu/qtest.o
CC aarch64-softmmu/bootdevice.o
CC x86_64-softmmu/memory_mapping.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/memory.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC aarch64-softmmu/migration/ram.o
CC x86_64-softmmu/migration/ram.o
CC x86_64-softmmu/accel/accel.o
CC x86_64-softmmu/accel/kvm/kvm-all.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/accel.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC x86_64-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC x86_64-softmmu/hw/intc/apic.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/misc/vmport.o
CC aarch64-softmmu/hw/display/dpcd.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC x86_64-softmmu/hw/misc/edu.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC x86_64-softmmu/hw/misc/hyperv_testdev.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC x86_64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC x86_64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC x86_64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/misc/cbus.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC x86_64-softmmu/hw/i386/pc.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/hw/i386/pci-assign-load-rom.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function ‘igd_passthrough_isa_bridge_create’:
/tmp/qemu-test/src/hw/i386/pc_piix.c:1068: warning: ‘pch_rev_id’ may be used uninitialized in this function
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC x86_64-softmmu/hw/i386/kvm/clock.o
CC x86_64-softmmu/hw/i386/kvm/apic.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/hw/i386/kvm/i8259.o
CC x86_64-softmmu/hw/i386/kvm/ioapic.o
CC x86_64-softmmu/hw/i386/kvm/i8254.o
CC aarch64-softmmu/hw/misc/edu.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC x86_64-softmmu/hw/i386/kvm/pci-assign.o
CC x86_64-softmmu/target/i386/helper.o
CC x86_64-softmmu/target/i386/cpu.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function ‘build_append_pci_bus_devices’:
/tmp/qemu-test/src/hw/i386/acpi-build.c:525: warning: ‘notify_method’ may be used uninitialized in this function
CC aarch64-softmmu/hw/net/virtio-net.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/target/i386/translate.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC x86_64-softmmu/target/i386/machine.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC x86_64-softmmu/target/i386/monitor.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC x86_64-softmmu/target/i386/kvm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC x86_64-softmmu/target/i386/hyperv.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/vfio/common.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/vhost.o
LINK x86_64-softmmu/qemu-system-x86_64
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-ep108.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
/tmp/qemu-test/src/target/arm/translate-a64.c: In function ‘handle_shri_with_rndacc’:
/tmp/qemu-test/src/target/arm/translate-a64.c:6365: warning: ‘tcg_src_hi’ may be used uninitialized in this function
/tmp/qemu-test/src/target/arm/translate-a64.c: In function ‘disas_simd_scalar_two_reg_misc’:
/tmp/qemu-test/src/target/arm/translate-a64.c:8092: warning: ‘rmode’ may be used uninitialized in this function
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64
TEST tests/qapi-schema/alternate-any.out
TEST tests/qapi-schema/alternate-array.out
TEST tests/qapi-schema/alternate-base.out
TEST tests/qapi-schema/alternate-clash.out
TEST tests/qapi-schema/alternate-conflict-dict.out
TEST tests/qapi-schema/alternate-conflict-enum-bool.out
TEST tests/qapi-schema/alternate-conflict-enum-int.out
TEST tests/qapi-schema/alternate-conflict-string.out
TEST tests/qapi-schema/alternate-empty.out
TEST tests/qapi-schema/alternate-nested.out
TEST tests/qapi-schema/alternate-unknown.out
TEST tests/qapi-schema/args-alternate.out
TEST tests/qapi-schema/args-any.out
TEST tests/qapi-schema/args-array-empty.out
TEST tests/qapi-schema/args-array-unknown.out
TEST tests/qapi-schema/args-bad-boxed.out
TEST tests/qapi-schema/args-boxed-anon.out
TEST tests/qapi-schema/args-boxed-empty.out
TEST tests/qapi-schema/args-boxed-string.out
TEST tests/qapi-schema/args-int.out
TEST tests/qapi-schema/args-member-array-bad.out
TEST tests/qapi-schema/args-member-case.out
TEST tests/qapi-schema/args-invalid.out
TEST tests/qapi-schema/args-member-unknown.out
TEST tests/qapi-schema/args-name-clash.out
TEST tests/qapi-schema/args-union.out
TEST tests/qapi-schema/args-unknown.out
TEST tests/qapi-schema/bad-base.out
TEST tests/qapi-schema/bad-data.out
TEST tests/qapi-schema/bad-ident.out
TEST tests/qapi-schema/bad-type-bool.out
TEST tests/qapi-schema/bad-type-dict.out
TEST tests/qapi-schema/bad-type-int.out
TEST tests/qapi-schema/base-cycle-direct.out
TEST tests/qapi-schema/base-cycle-indirect.out
TEST tests/qapi-schema/command-int.out
TEST tests/qapi-schema/comments.out
TEST tests/qapi-schema/doc-bad-alternate-member.out
TEST tests/qapi-schema/doc-bad-command-arg.out
TEST tests/qapi-schema/doc-bad-symbol.out
TEST tests/qapi-schema/doc-bad-union-member.out
TEST tests/qapi-schema/doc-before-include.out
TEST tests/qapi-schema/doc-before-pragma.out
TEST tests/qapi-schema/doc-duplicated-arg.out
TEST tests/qapi-schema/doc-duplicated-return.out
TEST tests/qapi-schema/doc-duplicated-since.out
TEST tests/qapi-schema/doc-empty-section.out
TEST tests/qapi-schema/doc-empty-arg.out
TEST tests/qapi-schema/doc-empty-symbol.out
TEST tests/qapi-schema/doc-good.out
TEST tests/qapi-schema/doc-interleaved-section.out
TEST tests/qapi-schema/doc-invalid-end2.out
TEST tests/qapi-schema/doc-invalid-end.out
TEST tests/qapi-schema/doc-invalid-return.out
TEST tests/qapi-schema/doc-invalid-start.out
TEST tests/qapi-schema/doc-invalid-section.out
TEST tests/qapi-schema/doc-missing.out
TEST tests/qapi-schema/doc-missing-colon.out
TEST tests/qapi-schema/doc-missing-expr.out
TEST tests/qapi-schema/doc-missing-space.out
TEST tests/qapi-schema/doc-no-symbol.out
TEST tests/qapi-schema/double-data.out
TEST tests/qapi-schema/double-type.out
TEST tests/qapi-schema/duplicate-key.out
TEST tests/qapi-schema/empty.out
TEST tests/qapi-schema/enum-bad-name.out
TEST tests/qapi-schema/enum-bad-prefix.out
TEST tests/qapi-schema/enum-dict-member.out
TEST tests/qapi-schema/enum-clash-member.out
TEST tests/qapi-schema/enum-int-member.out
TEST tests/qapi-schema/enum-member-case.out
TEST tests/qapi-schema/enum-missing-data.out
TEST tests/qapi-schema/enum-wrong-data.out
TEST tests/qapi-schema/escape-outside-string.out
TEST tests/qapi-schema/escape-too-big.out
TEST tests/qapi-schema/escape-too-short.out
TEST tests/qapi-schema/event-boxed-empty.out
TEST tests/qapi-schema/event-case.out
TEST tests/qapi-schema/event-nest-struct.out
TEST tests/qapi-schema/flat-union-array-branch.out
TEST tests/qapi-schema/flat-union-bad-base.out
TEST tests/qapi-schema/flat-union-bad-discriminator.out
TEST tests/qapi-schema/flat-union-base-any.out
TEST tests/qapi-schema/flat-union-base-union.out
TEST tests/qapi-schema/flat-union-clash-member.out
TEST tests/qapi-schema/flat-union-empty.out
TEST tests/qapi-schema/flat-union-inline.out
TEST tests/qapi-schema/flat-union-incomplete-branch.out
TEST tests/qapi-schema/flat-union-int-branch.out
TEST tests/qapi-schema/flat-union-invalid-branch-key.out
TEST tests/qapi-schema/flat-union-invalid-discriminator.out
TEST tests/qapi-schema/flat-union-no-base.out
TEST tests/qapi-schema/flat-union-optional-discriminator.out
TEST tests/qapi-schema/funny-char.out
TEST tests/qapi-schema/flat-union-string-discriminator.out
TEST tests/qapi-schema/ident-with-escape.out
TEST tests/qapi-schema/include-before-err.out
TEST tests/qapi-schema/include-cycle.out
TEST tests/qapi-schema/include-extra-junk.out
TEST tests/qapi-schema/include-format-err.out
TEST tests/qapi-schema/include-nested-err.out
TEST tests/qapi-schema/include-no-file.out
TEST tests/qapi-schema/include-non-file.out
TEST tests/qapi-schema/include-relpath.out
TEST tests/qapi-schema/include-repetition.out
TEST tests/qapi-schema/include-self-cycle.out
TEST tests/qapi-schema/include-simple.out
TEST tests/qapi-schema/indented-expr.out
TEST tests/qapi-schema/leading-comma-list.out
TEST tests/qapi-schema/leading-comma-object.out
TEST tests/qapi-schema/missing-colon.out
TEST tests/qapi-schema/missing-comma-list.out
TEST tests/qapi-schema/missing-type.out
TEST tests/qapi-schema/missing-comma-object.out
TEST tests/qapi-schema/nested-struct-data.out
TEST tests/qapi-schema/non-objects.out
TEST tests/qapi-schema/pragma-doc-required-crap.out
TEST tests/qapi-schema/pragma-extra-junk.out
TEST tests/qapi-schema/pragma-name-case-whitelist-crap.out
TEST tests/qapi-schema/pragma-non-dict.out
TEST tests/qapi-schema/pragma-returns-whitelist-crap.out
TEST tests/qapi-schema/qapi-schema-test.out
TEST tests/qapi-schema/quoted-structural-chars.out
TEST tests/qapi-schema/redefined-builtin.out
TEST tests/qapi-schema/redefined-command.out
TEST tests/qapi-schema/redefined-type.out
TEST tests/qapi-schema/reserved-command-q.out
TEST tests/qapi-schema/redefined-event.out
TEST tests/qapi-schema/reserved-enum-q.out
TEST tests/qapi-schema/reserved-member-has.out
TEST tests/qapi-schema/reserved-member-q.out
TEST tests/qapi-schema/reserved-member-u.out
TEST tests/qapi-schema/reserved-member-underscore.out
TEST tests/qapi-schema/reserved-type-kind.out
TEST tests/qapi-schema/reserved-type-list.out
TEST tests/qapi-schema/returns-alternate.out
TEST tests/qapi-schema/returns-array-bad.out
TEST tests/qapi-schema/returns-dict.out
TEST tests/qapi-schema/returns-unknown.out
TEST tests/qapi-schema/returns-whitelist.out
TEST tests/qapi-schema/struct-base-clash-deep.out
TEST tests/qapi-schema/struct-base-clash.out
TEST tests/qapi-schema/struct-data-invalid.out
TEST tests/qapi-schema/struct-member-invalid.out
TEST tests/qapi-schema/trailing-comma-list.out
TEST tests/qapi-schema/trailing-comma-object.out
TEST tests/qapi-schema/type-bypass-bad-gen.out
TEST tests/qapi-schema/unclosed-list.out
TEST tests/qapi-schema/unclosed-object.out
TEST tests/qapi-schema/unclosed-string.out
TEST tests/qapi-schema/unicode-str.out
TEST tests/qapi-schema/union-base-empty.out
TEST tests/qapi-schema/union-base-no-discriminator.out
TEST tests/qapi-schema/union-branch-case.out
TEST tests/qapi-schema/union-clash-branches.out
TEST tests/qapi-schema/union-empty.out
TEST tests/qapi-schema/union-invalid-base.out
TEST tests/qapi-schema/union-optional-branch.out
TEST tests/qapi-schema/union-unknown.out
TEST tests/qapi-schema/unknown-escape.out
TEST tests/qapi-schema/unknown-expr-key.out
GEN tests/qapi-schema/doc-good.test.texi
CC tests/check-qdict.o
CC tests/test-char.o
CC tests/check-qfloat.o
CC tests/check-qint.o
CC tests/check-qlist.o
CC tests/check-qstring.o
CC tests/check-qnull.o
CC tests/test-qobject-output-visitor.o
CC tests/check-qjson.o
GEN tests/test-qapi-visit.c
GEN tests/test-qapi-types.c
GEN tests/test-qapi-event.c
GEN tests/test-qmp-introspect.c
CC tests/test-clone-visitor.o
CC tests/test-qobject-input-visitor.o
CC tests/test-qmp-commands.o
GEN tests/test-qmp-marshal.c
CC tests/test-string-input-visitor.o
CC tests/test-string-output-visitor.o
CC tests/test-qmp-event.o
CC tests/test-opts-visitor.o
CC tests/test-coroutine.o
CC tests/iothread.o
CC tests/test-visitor-serialization.o
CC tests/test-iov.o
CC tests/test-aio.o
CC tests/test-aio-multithread.o
CC tests/test-throttle.o
CC tests/test-thread-pool.o
CC tests/test-hbitmap.o
CC tests/test-blockjob.o
CC tests/test-blockjob-txn.o
CC tests/test-x86-cpuid.o
CC tests/test-xbzrle.o
CC tests/test-vmstate.o
CC tests/test-cutils.o
CC tests/test-shift128.o
CC tests/test-mul64.o
CC tests/test-int128.o
/tmp/qemu-test/src/tests/test-int128.c:180: warning: ‘__noclone__’ attribute directive ignored
CC tests/rcutorture.o
CC tests/test-rcu-list.o
CC tests/test-qdist.o
CC tests/test-qht.o
CC tests/test-qht-par.o
CC tests/qht-bench.o
CC tests/test-bitops.o
CC tests/check-qom-interface.o
CC tests/test-bitcnt.o
CC tests/check-qom-proplist.o
CC tests/test-qemu-opts.o
CC tests/test-keyval.o
CC tests/test-crypto-hash.o
CC tests/test-write-threshold.o
CC tests/test-crypto-hmac.o
CC tests/test-crypto-cipher.o
CC tests/test-crypto-secret.o
CC tests/test-qga.o
CC tests/libqtest.o
CC tests/test-timed-average.o
CC tests/test-io-task.o
CC tests/test-io-channel-socket.o
CC tests/io-channel-helpers.o
CC tests/test-io-channel-file.o
CC tests/test-io-channel-command.o
CC tests/test-io-channel-buffer.o
CC tests/test-base64.o
CC tests/test-crypto-ivgen.o
CC tests/test-crypto-afsplit.o
CC tests/test-crypto-xts.o
CC tests/test-crypto-block.o
CC tests/test-logging.o
CC tests/test-replication.o
CC tests/test-bufferiszero.o
CC tests/test-uuid.o
CC tests/ptimer-test.o
CC tests/ptimer-test-stubs.o
CC tests/test-qapi-util.o
CC tests/vhost-user-test.o
CC tests/libqos/pci.o
CC tests/libqos/fw_cfg.o
CC tests/libqos/malloc.o
CC tests/libqos/i2c.o
CC tests/libqos/libqos.o
CC tests/libqos/malloc-spapr.o
CC tests/libqos/libqos-spapr.o
CC tests/libqos/pci-spapr.o
CC tests/libqos/rtas.o
CC tests/libqos/pci-pc.o
CC tests/libqos/malloc-pc.o
CC tests/libqos/libqos-pc.o
CC tests/libqos/ahci.o
CC tests/libqos/virtio.o
CC tests/libqos/virtio-pci.o
CC tests/libqos/virtio-mmio.o
CC tests/libqos/malloc-generic.o
CC tests/endianness-test.o
CC tests/fdc-test.o
CC tests/ide-test.o
CC tests/ahci-test.o
CC tests/hd-geo-test.o
CC tests/boot-order-test.o
CC tests/bios-tables-test.o
CC tests/boot-sector.o
CC tests/acpi-utils.o
CC tests/boot-serial-test.o
CC tests/pxe-test.o
CC tests/rtc-test.o
CC tests/ipmi-kcs-test.o
CC tests/ipmi-bt-test.o
CC tests/i440fx-test.o
CC tests/fw_cfg-test.o
CC tests/drive_del-test.o
CC tests/wdt_ib700-test.o
CC tests/tco-test.o
CC tests/e1000-test.o
CC tests/e1000e-test.o
CC tests/rtl8139-test.o
CC tests/pcnet-test.o
CC tests/eepro100-test.o
CC tests/ne2000-test.o
CC tests/ac97-test.o
CC tests/nvme-test.o
CC tests/es1370-test.o
CC tests/virtio-net-test.o
CC tests/virtio-balloon-test.o
CC tests/virtio-blk-test.o
CC tests/virtio-rng-test.o
CC tests/virtio-scsi-test.o
CC tests/virtio-serial-test.o
CC tests/virtio-console-test.o
CC tests/tpci200-test.o
CC tests/ipoctal232-test.o
CC tests/display-vga-test.o
CC tests/intel-hda-test.o
CC tests/ivshmem-test.o
CC tests/megasas-test.o
CC tests/vmxnet3-test.o
CC tests/pvpanic-test.o
CC tests/i82801b11-test.o
CC tests/ioh3420-test.o
CC tests/usb-hcd-ohci-test.o
CC tests/libqos/usb.o
CC tests/usb-hcd-uhci-test.o
CC tests/usb-hcd-ehci-test.o
CC tests/usb-hcd-xhci-test.o
CC tests/pc-cpu-test.o
CC tests/q35-test.o
CC tests/test-netfilter.o
CC tests/test-filter-mirror.o
CC tests/test-filter-redirector.o
CC tests/postcopy-test.o
CC tests/test-x86-cpuid-compat.o
CC tests/numa-test.o
CC tests/qmp-test.o
CC tests/device-introspect-test.o
CC tests/qom-test.o
CC tests/test-hmp.o
LINK tests/check-qdict
LINK tests/test-char
LINK tests/check-qfloat
LINK tests/check-qint
LINK tests/check-qstring
LINK tests/check-qlist
LINK tests/check-qnull
LINK tests/check-qjson
CC tests/test-qapi-visit.o
CC tests/test-qapi-types.o
CC tests/test-qapi-event.o
CC tests/test-qmp-introspect.o
CC tests/test-qmp-marshal.o
LINK tests/test-coroutine
LINK tests/test-iov
LINK tests/test-aio
LINK tests/test-aio-multithread
LINK tests/test-throttle
LINK tests/test-thread-pool
LINK tests/test-hbitmap
LINK tests/test-blockjob
LINK tests/test-blockjob-txn
LINK tests/test-x86-cpuid
LINK tests/test-xbzrle
LINK tests/test-vmstate
LINK tests/test-cutils
LINK tests/test-shift128
LINK tests/test-mul64
LINK tests/test-int128
LINK tests/rcutorture
LINK tests/test-rcu-list
LINK tests/test-qdist
LINK tests/test-qht
LINK tests/qht-bench
LINK tests/test-bitops
LINK tests/test-bitcnt
LINK tests/check-qom-interface
LINK tests/check-qom-proplist
LINK tests/test-qemu-opts
LINK tests/test-keyval
LINK tests/test-write-threshold
LINK tests/test-crypto-hash
LINK tests/test-crypto-hmac
LINK tests/test-crypto-cipher
LINK tests/test-crypto-secret
LINK tests/test-qga
LINK tests/test-timed-average
LINK tests/test-io-task
LINK tests/test-io-channel-socket
LINK tests/test-io-channel-file
LINK tests/test-io-channel-command
LINK tests/test-io-channel-buffer
LINK tests/test-base64
LINK tests/test-crypto-ivgen
LINK tests/test-crypto-afsplit
LINK tests/test-crypto-xts
LINK tests/test-crypto-block
LINK tests/test-logging
LINK tests/test-replication
LINK tests/test-bufferiszero
LINK tests/test-uuid
LINK tests/ptimer-test
LINK tests/test-qapi-util
LINK tests/vhost-user-test
LINK tests/endianness-test
LINK tests/fdc-test
LINK tests/ide-test
LINK tests/ahci-test
LINK tests/hd-geo-test
LINK tests/boot-order-test
LINK tests/bios-tables-test
LINK tests/boot-serial-test
LINK tests/pxe-test
LINK tests/rtc-test
LINK tests/ipmi-kcs-test
LINK tests/ipmi-bt-test
LINK tests/i440fx-test
LINK tests/fw_cfg-test
LINK tests/drive_del-test
LINK tests/wdt_ib700-test
LINK tests/tco-test
LINK tests/e1000-test
LINK tests/e1000e-test
LINK tests/rtl8139-test
LINK tests/pcnet-test
LINK tests/eepro100-test
LINK tests/ne2000-test
LINK tests/nvme-test
LINK tests/ac97-test
LINK tests/es1370-test
LINK tests/virtio-net-test
LINK tests/virtio-balloon-test
LINK tests/virtio-blk-test
LINK tests/virtio-rng-test
LINK tests/virtio-scsi-test
LINK tests/virtio-serial-test
LINK tests/virtio-console-test
LINK tests/tpci200-test
LINK tests/ipoctal232-test
LINK tests/display-vga-test
LINK tests/intel-hda-test
LINK tests/ivshmem-test
LINK tests/megasas-test
LINK tests/vmxnet3-test
LINK tests/pvpanic-test
LINK tests/i82801b11-test
LINK tests/ioh3420-test
LINK tests/usb-hcd-ohci-test
LINK tests/usb-hcd-uhci-test
LINK tests/usb-hcd-ehci-test
LINK tests/usb-hcd-xhci-test
LINK tests/pc-cpu-test
LINK tests/q35-test
LINK tests/test-netfilter
LINK tests/test-filter-mirror
LINK tests/test-filter-redirector
LINK tests/postcopy-test
LINK tests/test-x86-cpuid-compat
LINK tests/numa-test
LINK tests/qmp-test
LINK tests/device-introspect-test
LINK tests/qom-test
LINK tests/test-hmp
GTESTER tests/check-qdict
GTESTER tests/check-qfloat
GTESTER tests/test-char
GTESTER tests/check-qint
GTESTER tests/check-qstring
GTESTER tests/check-qlist
GTESTER tests/check-qnull
GTESTER tests/check-qjson
LINK tests/test-qobject-output-visitor
LINK tests/test-clone-visitor
LINK tests/test-qobject-input-visitor
LINK tests/test-qmp-commands
LINK tests/test-string-input-visitor
LINK tests/test-string-output-visitor
LINK tests/test-qmp-event
LINK tests/test-opts-visitor
GTESTER tests/test-coroutine
LINK tests/test-visitor-serialization
GTESTER tests/test-iov
GTESTER tests/test-aio-multithread
GTESTER tests/test-aio
GTESTER tests/test-throttle
GTESTER tests/test-thread-pool
GTESTER tests/test-hbitmap
GTESTER tests/test-blockjob
GTESTER tests/test-blockjob-txn
GTESTER tests/test-x86-cpuid
GTESTER tests/test-xbzrle
GTESTER tests/test-vmstate
Failed to load simple/primitive:b_1
Failed to load simple/primitive:i64_2
Failed to load simple/primitive:i32_1
Failed to load simple/primitive:i32_1
Failed to load test/with_tmp:a
Failed to load test/tmp_child_parent:f
Failed to load test/tmp_child:parent
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
GTESTER tests/test-cutils
GTESTER tests/test-shift128
GTESTER tests/test-mul64
GTESTER tests/test-int128
GTESTER tests/rcutorture
GTESTER tests/test-rcu-list
GTESTER tests/test-qdist
GTESTER tests/test-qht
LINK tests/test-qht-par
GTESTER tests/test-bitops
GTESTER tests/test-bitcnt
GTESTER tests/check-qom-interface
GTESTER tests/check-qom-proplist
GTESTER tests/test-qemu-opts
GTESTER tests/test-keyval
GTESTER tests/test-write-threshold
GTESTER tests/test-crypto-hash
GTESTER tests/test-crypto-hmac
GTESTER tests/test-crypto-cipher
GTESTER tests/test-crypto-secret
GTESTER tests/test-qga
GTESTER tests/test-timed-average
GTESTER tests/test-io-task
GTESTER tests/test-io-channel-socket
GTESTER tests/test-io-channel-file
GTESTER tests/test-io-channel-command
GTESTER tests/test-io-channel-buffer
GTESTER tests/test-base64
GTESTER tests/test-crypto-ivgen
GTESTER tests/test-crypto-afsplit
GTESTER tests/test-crypto-xts
GTESTER tests/test-crypto-block
GTESTER tests/test-logging
GTESTER tests/test-replication
GTESTER tests/test-bufferiszero
GTESTER tests/test-uuid
GTESTER tests/ptimer-test
GTESTER tests/test-qapi-util
GTESTER check-qtest-x86_64
GTESTER check-qtest-aarch64
GTESTER tests/test-qobject-output-visitor
GTESTER tests/test-clone-visitor
GTESTER tests/test-qobject-input-visitor
GTESTER tests/test-qmp-commands
GTESTER tests/test-string-input-visitor
GTESTER tests/test-string-output-visitor
GTESTER tests/test-qmp-event
GTESTER tests/test-opts-visitor
GTESTER tests/test-visitor-serialization
GTESTER tests/test-qht-par
Broken pipe
Broken pipe
GTester: last random seed: R02Sa1897ad4ae849eacfcdb6170900eeafa
Broken pipe
GTester: last random seed: R02S07a5650574713a63d41019985ae807fd
Broken pipe
GTester: last random seed: R02S1b096283f6937ece118d169cf1782c2f
Broken pipe
Broken pipe
GTester: last random seed: R02Sfa5419729a1477c9da722a47a8b8181c
Broken pipe
GTester: last random seed: R02S2ee4a2edfae4a752164a94f0e6f52dd9
GTester: last random seed: R02Sffa35c48faa1d2a897b682d858103d4e
GTester: last random seed: R02S8d21a191643730ba0facd10dac8bc124
GTester: last random seed: R02S017f0b02087ac53ceb58c40df10e8581
GTester: last random seed: R02S1144e17f832a620192f154184fff2122
GTester: last random seed: R02S537d7f87ca33ed74a9e724dc2e0630df
GTester: last random seed: R02S4668a430a05a12877d1fa7a1fbc169d3
Broken pipe
GTester: last random seed: R02S35677d07da46d11066b21f305532315d
Broken pipe
GTester: last random seed: R02S6eb01abd330b6670fcfcef527750c391
Broken pipe
GTester: last random seed: R02S0b39f2b3547fb0941e106ae3963a4d8a
Broken pipe
GTester: last random seed: R02Sd9b31d31032ee12e59ccf27fad43a7d0
Broken pipe
GTester: last random seed: R02Sa4b669c92e07120e969cc57319ac0b65
Broken pipe
GTester: last random seed: R02S02c128635f311265e9ed8a9946f27a4d
Broken pipe
GTester: last random seed: R02S883c91c35220ebdf8d094e8ba8eea38e
Broken pipe
GTester: last random seed: R02Sd349385a1b17c3bf9596a930dd3ba0a6
Broken pipe
GTester: last random seed: R02S6b12343e4ef24d329c8a7a75ca97bb8e
Broken pipe
GTester: last random seed: R02Sf8776809ba1b0dfe7c86d0e4d7c2e5c0
Broken pipe
GTester: last random seed: R02Sc27c8dd38014749d10dc10e53ede8a41
Broken pipe
GTester: last random seed: R02S708cb0307271f70980512178176567d1
Broken pipe
GTester: last random seed: R02S2ddbafb536e981900aa4cee90ae92d65
Broken pipe
GTester: last random seed: R02S77ca619c0c9b4ec14bdbae9d2e362d1d
Broken pipe
GTester: last random seed: R02S38ad1d0cea2590208081247d9f321339
Broken pipe
GTester: last random seed: R02S694e23e42663c0e8128eae28a672f4fa
Broken pipe
GTester: last random seed: R02S1acf746f86b87c5b4f8dc32995e14782
Broken pipe
GTester: last random seed: R02Sbec1ac289d22cd8729038bec9130b317
Broken pipe
GTester: last random seed: R02Sef8a04a763c1c3795cb66aac3b467451
Broken pipe
GTester: last random seed: R02S1931552d0f75f9e5b112842eabca0dfc
Broken pipe
GTester: last random seed: R02S3b7e5bcb5a92e08c2f3f605c2465cebb
Broken pipe
GTester: last random seed: R02S3748e863bf4f01a438ef7203ca129531
Broken pipe
GTester: last random seed: R02Sc1b4c12311ea938380e69f1b534e4f61
Broken pipe
GTester: last random seed: R02S9d9d91983abc3bacca0ef9d9c44efff8
Broken pipe
GTester: last random seed: R02Sf771297c7065a1b8f595530d041f4e40
Broken pipe
GTester: last random seed: R02Sb304f700e98bcceafc1a0bcf232948ea
Broken pipe
GTester: last random seed: R02Sd64fcc3a9665f0ce412afba97af5b8bd
Broken pipe
GTester: last random seed: R02S1f0032b486e9cff37d78cff054077740
Broken pipe
GTester: last random seed: R02S40235fd7212b10e8fa1312e8b20c9621
Broken pipe
GTester: last random seed: R02Sf8bfc23db7b0a8babb4585dd453d556d
Broken pipe
GTester: last random seed: R02Sb710b8f43f0eee57abadc50b675cdea5
Broken pipe
GTester: last random seed: R02Sfe193c33ce3961d0e5b7200d3d80abf6
Broken pipe
GTester: last random seed: R02S3385be663423518dc0fdcfc1073ad6e7
Broken pipe
GTester: last random seed: R02Se6c90e311c05db8e2b0621680bb20b39
Broken pipe
GTester: last random seed: R02Scb81c653d56bee6b7bab98352c59801c
Broken pipe
GTester: last random seed: R02S893c9a11c9bcdf4453d7685059161891
Broken pipe
GTester: last random seed: R02S3125fc233cd0ffa9f21e5a272d836fad
Broken pipe
GTester: last random seed: R02Saece4d29a6088d9cf56c6c64a7cc0106
Broken pipe
GTester: last random seed: R02S307ea441eb9d277ce5e8c86cc5d43681
Broken pipe
GTester: last random seed: R02S5ad21986ed21773f7b43d38a5c333d68
Broken pipe
GTester: last random seed: R02S31b46f255fa7c9863e61c1e605605933
Broken pipe
GTester: last random seed: R02S995464fbfacd9c8b42bede9c1971cb01
Broken pipe
GTester: last random seed: R02S1d054c9f6bd04d1d6caea591a0ddedb2
Broken pipe
GTester: last random seed: R02S407472d978890df6de19bfa84daa39b5
Broken pipe
GTester: last random seed: R02S9b73d9fc3cd4b1982cdc74a035a60ddc
Broken pipe
GTester: last random seed: R02Sb2edf739272f4d659dd0bdb17cc95a6a
Broken pipe
GTester: last random seed: R02S66eb64d471fc7f3f2f79237498df0314
Broken pipe
GTester: last random seed: R02S0226279ad1fe01986237019664358d30
Broken pipe
GTester: last random seed: R02S40cdac99a472b8b61a59b9c5a2854f62
Broken pipe
GTester: last random seed: R02S4c7b219b754fc29fa19c51c66db64d7f
Broken pipe
GTester: last random seed: R02Sca00304a3dda9dca8351407800e0e853
Broken pipe
GTester: last random seed: R02S1b7aa55123cdfcc25c8fa751c18ccbd2
Broken pipe
GTester: last random seed: R02S00aab6ba9d1c2959b13a9452a20af488
Broken pipe
GTester: last random seed: R02Se88732554917fa05585f936e7ea21770
Broken pipe
GTester: last random seed: R02Sd888d4f07421c55cc2a5ec4d31115ce8
Broken pipe
GTester: last random seed: R02S3479512b70eef73c184898dbfe078e54
Broken pipe
GTester: last random seed: R02Sf573eeaa036abdf68befe84dc2132873
Broken pipe
GTester: last random seed: R02Sc7b466a0f8335de213dbcc47eafd99e9
Broken pipe
GTester: last random seed: R02S33f81449a5747930d1dc9d68c52fb910
Broken pipe
GTester: last random seed: R02S9fa0e648327bfc6bc57931574368209f
Broken pipe
GTester: last random seed: R02Sb3314271156db86686a4dc3ae4d02f7b
Broken pipe
GTester: last random seed: R02Sf42065d2dc212c70195cd2b183446e94
Broken pipe
GTester: last random seed: R02Sf5dc0dc5a6afc166d7fde0237edaf715
Broken pipe
GTester: last random seed: R02Sf5d53856224f264c6d89c1dd1dc7d0a8
Broken pipe
GTester: last random seed: R02S562bbadc9156d739cd0fbe014801ef55
Broken pipe
GTester: last random seed: R02S9def4258bffab18648885b1a1d27b6e8
Broken pipe
GTester: last random seed: R02S93b0f51e2de3e02b371ae079fba89b88
Broken pipe
GTester: last random seed: R02Se95614342c13ecdfbaa4b849b64e054e
Broken pipe
GTester: last random seed: R02Sb040c1c15dbe5b9b6f45c1837d076108
Broken pipe
GTester: last random seed: R02S3d918540890d02de062348ec7101a565
Broken pipe
GTester: last random seed: R02S856a64e137eec0fb19e36dfba1d949c5
Broken pipe
GTester: last random seed: R02S0b6e7971ac29bc8d59041dca67c0996b
Broken pipe
GTester: last random seed: R02Sfb57321be3c75e04fd64740f56c32113
Broken pipe
GTester: last random seed: R02Seef3e1af3b71f417a22fde43f14bf94d
Broken pipe
GTester: last random seed: R02Sf6eb87ac599e1841a78ed5d54e909c1c
Broken pipe
GTester: last random seed: R02S4c91744ce1fe42233806d5be48004653
Broken pipe
GTester: last random seed: R02Sbacb053d49be370ca5e978518cff0a57
Broken pipe
GTester: last random seed: R02S4e97c1ce79f9dad4ebb120988e5cbd24
Broken pipe
GTester: last random seed: R02Sfe4b66d8cf957a821f16c0949270b62a
Broken pipe
GTester: last random seed: R02S306f34982bc99193b1c87f6d77f300eb
Broken pipe
GTester: last random seed: R02S0b4b7f1a3b7341ec55d6e3ce99534495
Broken pipe
GTester: last random seed: R02S3da97a6386474923f3b4e974fb6aff40
Broken pipe
GTester: last random seed: R02S82abd33fbda63b43b0de25175fa75607
Broken pipe
GTester: last random seed: R02Se507989222394621b4ee07c74fdbb1d3
Broken pipe
GTester: last random seed: R02S4a994122bf3875ada9d6f1c87eea1a7a
Broken pipe
GTester: last random seed: R02Sb444097a44e986bc2d51112656b217f8
Broken pipe
GTester: last random seed: R02S4ad5a36414cc45ab09a953675b3df8b4
Broken pipe
GTester: last random seed: R02S30c5624fdd020c6d01a3bf6b511083e2
Broken pipe
GTester: last random seed: R02S7d7dcb77a5f73bef992b7a8b70b46f89
Broken pipe
GTester: last random seed: R02S7039d2009b61d761e601b59f54e4ea9d
Broken pipe
GTester: last random seed: R02S0bfccb98853bbf8d0f4c62fdf0f574b2
Broken pipe
GTester: last random seed: R02S4c6652ac1152d8cb00052d981aabca05
Broken pipe
GTester: last random seed: R02S95b973badf14f008ee14d52e7ed0e3e3
Broken pipe
GTester: last random seed: R02Sb7735309778f4bf5a694eec749dbe6a0
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Broken pipe
Broken pipe
Broken pipe
Broken pipe
GTester: last random seed: R02Sb33b8134869b788e334c2fee8680b0dd
Broken pipe
GTester: last random seed: R02S432f724214bf6e465c46b7a7ad3ca71a
Broken pipe
GTester: last random seed: R02S5dbdf98fd08e8cf2f2eb4928b86d3509
Broken pipe
GTester: last random seed: R02Sc0cfbd7fd8fc7ab99f2f59318bc1e26f
Broken pipe
Broken pipe
GTester: last random seed: R02Sc67ba27ee20d250fdec17e52e3a762a9
Broken pipe
GTester: last random seed: R02Sf2fc8633ead79c7836ac7820ebc567a8
Broken pipe
GTester: last random seed: R02S4c9c431e6a99b7b0d3c9f4e4360b2742
Broken pipe
GTester: last random seed: R02S1e8f69d5d04bf386a761b18b3e930aac
Broken pipe
GTester: last random seed: R02S4b318b923d8fc170cf27b01bbb1dea82
Broken pipe
GTester: last random seed: R02S2bace1b2b939f26665abac12684d1108
Broken pipe
GTester: last random seed: R02Sa929c10966aaf417226ee4de48905d10
Broken pipe
GTester: last random seed: R02S885e7cf76be96f7e6f9f89c6ec776242
Broken pipe
GTester: last random seed: R02Scf5b27f849fc2cdbc835a5d153772f81
Broken pipe
GTester: last random seed: R02S0be1ff37416224503a20b54088f3c51c
Broken pipe
GTester: last random seed: R02S7c2dd00346001016fe20ee87185a5177
Broken pipe
GTester: last random seed: R02S776638b8e8b6d5ce46ec013d4680a5d4
Broken pipe
GTester: last random seed: R02Sae166c6498b6b3877bc3f2a27e3c3c1e
Broken pipe
GTester: last random seed: R02S157336654b1bd907d58d56e2fa3e81ce
Broken pipe
GTester: last random seed: R02Sc7d8ed95c64898ad93dca09dc1187ecc
Broken pipe
GTester: last random seed: R02Secf79831804847e76181d7ad4661cad9
Broken pipe
GTester: last random seed: R02S92667d2cae976927859f173336fb0ed5
Broken pipe
GTester: last random seed: R02Sd71332cb32710a39a1289d4f9b76ed0a
Broken pipe
GTester: last random seed: R02Sddb5a5cdd6c8cb603dd196a1430ce7fe
Broken pipe
GTester: last random seed: R02S45dd24f4075b19ac87d41b0c43eaa64c
Broken pipe
GTester: last random seed: R02S78aaa296f302a4cbd6031c8856e4608f
Broken pipe
GTester: last random seed: R02S37d61929dd713fb1ef33b82ec41faa67
Broken pipe
GTester: last random seed: R02Sb02e61816924731bfbc3199b1344fe41
Broken pipe
GTester: last random seed: R02Sac75bdf1c4bdfb545808b17da61b25bf
Broken pipe
GTester: last random seed: R02Scc5c614cca579e3c66182dcb9337fe16
Broken pipe
GTester: last random seed: R02S90d41a8dcebf16ebc961cd65c35ad464
Broken pipe
GTester: last random seed: R02Sbf12a66219a8e318c57557623a7c0810
Broken pipe
Broken pipe
Broken pipe
GTester: last random seed: R02S1cc073855d9731e691050f430be86f8e
Broken pipe
GTester: last random seed: R02S48c7d59a14603baed153bd76da372bf7
Broken pipe
GTester: last random seed: R02Sbf8c095578d352459c94b40dcaa896d0
Broken pipe
GTester: last random seed: R02Sc5f452c195d9eb446e40115e0a08c54b
Broken pipe
GTester: last random seed: R02Sf0b7fad5f421b987e3436c4f7fc125f2
Broken pipe
GTester: last random seed: R02S436838f431b231c573b90eee9a0afea0
Broken pipe
GTester: last random seed: R02Sc088e36e11e7dee3e6149f8ce0ddcc88
Broken pipe
GTester: last random seed: R02S1291347d6fad1e71128f443b6535e7c5
Broken pipe
GTester: last random seed: R02S6208d1b475c9d1b984e9c992d07fa6dc
Broken pipe
GTester: last random seed: R02S838499f29f40561991eb4d92d3a5f6aa
Broken pipe
GTester: last random seed: R02S1b35c0bb4df9a8b71f43442f9667f0a0
Broken pipe
GTester: last random seed: R02S144aef85fe1f136407bbaf7420cb4935
Broken pipe
GTester: last random seed: R02S57aeaa38c7e836ae0eed69bf6b0b2c5d
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
GTester: last random seed: R02S0f9db3872a63f001dd99b5d8fbf8132f
Broken pipe
GTester: last random seed: R02Sc0279af98b45d28f6608d67e789dc7a9
Broken pipe
GTester: last random seed: R02S43c5401f0743e25087f69acb37bd1a85
Broken pipe
Broken pipe
GTester: last random seed: R02S3d45cfd646d581d438373dd073c51e00
Broken pipe
GTester: last random seed: R02S9124674b2c5d5aeb424b12370d9a498b
Broken pipe
GTester: last random seed: R02S55d38d89328307f6fe891cd0e907752e
Broken pipe
GTester: last random seed: R02S93b1a7d6dcb49043d25c2d82ed782f5f
Broken pipe
GTester: last random seed: R02S7dc6fd85670c172277941ad6fd2c6d72
Broken pipe
GTester: last random seed: R02S6b61e26f97c044db552ff737d8981d3e
Broken pipe
Broken pipe
GTester: last random seed: R02S6c1153c4f266ddd99c002b58b7dae506
Broken pipe
GTester: last random seed: R02S3b61b72eb462680bf977e7305f5c836d
Broken pipe
GTester: last random seed: R02S666fe35fdf4753459dfe5c8211e6b013
Broken pipe
Broken pipe
GTester: last random seed: R02Sd628cf8cfc6eeb5eab1e5bb8213faf88
Broken pipe
GTester: last random seed: R02Se454982526ee095f5a54d9e7fbb7e789
Broken pipe
Broken pipe
Broken pipe
GTester: last random seed: R02Se5b996da1118717da35b2f1e35e9a250
Broken pipe
GTester: last random seed: R02S41b5f07ba1cec1cab289180fa1a4c161
Broken pipe
GTester: last random seed: R02S6c68987d7d8ebfef71f495bff03e3f93
Broken pipe
GTester: last random seed: R02Sdbf5ad5eda69498548547f71613097d6
Broken pipe
GTester: last random seed: R02S3600464165653a93b84966eb0c46952f
Broken pipe
GTester: last random seed: R02S208b358cb7e36d04e9f608d7010f9133
Broken pipe
GTester: last random seed: R02S342f37ba7e153ee4b03180930ae9cc68
Broken pipe
GTester: last random seed: R02Sf51fc75d36d8c42743518e34f718be6c
Broken pipe
GTester: last random seed: R02S01dbd52873764edec4aa6953f8340db9
Broken pipe
GTester: last random seed: R02S66a9b33cbb05a4d9178fa92b162ff670
Broken pipe
GTester: last random seed: R02S159205211512350b70a244bb4163e016
Broken pipe
GTester: last random seed: R02Sabe5de5349945058cca82affc9197b1d
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
Broken pipe
GTester: last random seed: R02Sc1676c9e816d3a4b537c01a42c0f19b8
Broken pipe
GTester: last random seed: R02S1580a5a6d5d605b40ad372266e4177b9
Broken pipe
GTester: last random seed: R02Sd361cb8617d930099df60a790ec6b949
Broken pipe
GTester: last random seed: R02Sbb26288f56a721780df426e64a29eb11
Broken pipe
GTester: last random seed: R02S55d350fd7d26cf7a77e6d85405617aad
Broken pipe
GTester: last random seed: R02S2e4d886912107a26c63e26e737f0fc48
Broken pipe
GTester: last random seed: R02Sf8b5b8605bd4493a81b1eb4bc09cf083
Broken pipe
GTester: last random seed: R02S8eebcd2f836b3e9dc0b7b468674f6028
Broken pipe
GTester: last random seed: R02S26fa2478428485f2bd8cb5a418b5ef39
Broken pipe
GTester: last random seed: R02Sacd4e8e42dfba0cfee90728547ba10ea
Broken pipe
GTester: last random seed: R02S06e778dfca3890c2ac9127e9beb86fbc
Broken pipe
GTester: last random seed: R02S50c8a978caaae76f372b82538cce00fe
Broken pipe
GTester: last random seed: R02S1951e146154f42fbcfc31ca32e13abbe
Broken pipe
GTester: last random seed: R02Sef75ed082d66a63b949576bf387a7a09
Broken pipe
GTester: last random seed: R02S6d878f8e19e89100efd59ebf802e1507
Broken pipe
GTester: last random seed: R02S2e7b94f2b7da6db924e530bd22ad5f4e
Broken pipe
GTester: last random seed: R02Sda6da87fea73af432f58eb6d21c86539
Broken pipe
GTester: last random seed: R02S98b8301f0e954ec131322b3503a70b86
Broken pipe
GTester: last random seed: R02S6db93a4ab88e3824c868e5e2b8431e3f
Broken pipe
GTester: last random seed: R02S0c2d55520c82eff40dc27be034a56532
Broken pipe
GTester: last random seed: R02S5d8e25af661ce2b82a966bf9f0c381cb
Broken pipe
GTester: last random seed: R02Scf7941a56ebdb5f30a8fec6dafcaca2b
Broken pipe
GTester: last random seed: R02S01bf764610e505ce3d538572559e138f
Broken pipe
GTester: last random seed: R02S8f6ccbe279e037330c63d11bf984ead9
Broken pipe
GTester: last random seed: R02Sa83f606522c87898cc83921cc0115e4b
Broken pipe
GTester: last random seed: R02S517e485fe6b8dd8399c47f082419721a
Broken pipe
GTester: last random seed: R02S60dff231698a6358a8ce3016ec5ed89f
Broken pipe
GTester: last random seed: R02Se9885c1b5dd94c55c2bb12aa8e256c61
Broken pipe
GTester: last random seed: R02Sa06ae3d9667b022cb0b57cf9befbe6fe
Broken pipe
GTester: last random seed: R02Scd9580fd6aa17d32e74469a1d4f67c9e
Broken pipe
GTester: last random seed: R02S8dd1862216ed050f74dad0f57dfa91a2
Broken pipe
GTester: last random seed: R02S19b430838c371cbebfb8330296216f04
Broken pipe
GTester: last random seed: R02Sd896b43cf5f1aa7223f012fa1ec75a07
Broken pipe
GTester: last random seed: R02Sb417a6216f8c94a51725cf37b9274d9a
Broken pipe
GTester: last random seed: R02Sdc18d01bdd9ccbc3ffefe2cf43903c8a
Broken pipe
GTester: last random seed: R02Scf2609924fc8d56966b4d5871d436676
Broken pipe
GTester: last random seed: R02S303ac07e2051684afa4c14798d4212b8
Broken pipe
Broken pipe
GTester: last random seed: R02Sbb065f3fd72c14dbf90f6c3b1d3eafd7
GLib-CRITICAL **: g_hook_destroy_link: assertion `hook != NULL' failed
aborting...
Broken pipe
GTester: last random seed: R02S6b5c5881206d012119cb284fe17791a6
Broken pipe
GTester: last random seed: R02Sc11d85cd6b84a44ff5b19ba31958384b
Broken pipe
GTester: last random seed: R02S2ebc15fa0daa761db3eac5e8ccde97dd
Broken pipe
GTester: last random seed: R02S7b3c2fa05e9efbc4954371bbe4253184
Broken pipe
GTester: last random seed: R02Sf1fffe779265474cd3a2455e944cb0bb
Broken pipe
GTester: last random seed: R02S1236fe20c7a6154690666e73c6adb2c6
Broken pipe
GTester: last random seed: R02Sadce6ef8bd2693f7133d9a29802e76fa
Broken pipe
GTester: last random seed: R02S97e486d66f0058a4940ece7c5c5ba9db
Broken pipe
GTester: last random seed: R02S71ec85ca4cd83711ef33f6a671d852a1
Broken pipe
GTester: last random seed: R02S9a20dd7177fa175a72df00a7d26027a1
Broken pipe
GTester: last random seed: R02Se7a2ac785f3105ca7997cb77876b9642
Broken pipe
GTester: last random seed: R02S3f75c09841da850a5b7eadcd2ab79b57
Broken pipe
GTester: last random seed: R02S77d1590641ab71c5b39a29d83949f91d
Broken pipe
GTester: last random seed: R02S774658f1a3eb9cabbfa4fa5986634347
Broken pipe
GTester: last random seed: R02S9cd4ff2bf8cb60605ab4f0b03a980ee9
Broken pipe
GTester: last random seed: R02Sce9e740336d1ed60902c4f0c635ebe4c
Broken pipe
GTester: last random seed: R02Sa3b80e7e3cefb60ba70dfd95efe15401
Broken pipe
GTester: last random seed: R02S5b88b50101c0145811290634a11705de
Broken pipe
GTester: last random seed: R02S725c93d63f68155ef3005faf15a39be5
Broken pipe
GTester: last random seed: R02Sc0db6682edbe3c74092dd68e2f57a70c
Broken pipe
GTester: last random seed: R02Sd665dd7697bc78104d82f37f6a315ffa
Broken pipe
GTester: last random seed: R02S3558347f2ad47bf587b7ac57456f8135
Broken pipe
GTester: last random seed: R02S4204e218f3c9c897c957b38c81b07225
Broken pipe
GTester: last random seed: R02S2cd9c5e45f405458a5a6ada78815602f
Broken pipe
GTester: last random seed: R02Se09da8d50722ef1221d6efeae3a8a3c2
Broken pipe
GTester: last random seed: R02S681821dcc2c607e8db6fdc6994aea362
Broken pipe
GTester: last random seed: R02S60eca4b6fee6c0f15a48ffa4db856dd9
Broken pipe
GTester: last random seed: R02Sb6c0f0e53b8344f38f0ac1eb58dc508d
Broken pipe
GTester: last random seed: R02Se4389ce6047090f0f00c861ef4f178d6
Broken pipe
GTester: last random seed: R02S3fb52523d178b99f15ac0d584e222e4a
Broken pipe
GTester: last random seed: R02S9412e0631e950605770e7e89dc6fb336
Broken pipe
GTester: last random seed: R02S6d8ee1577833ae17e16f11d895128c27
Broken pipe
GTester: last random seed: R02S5e4a6255e3123333f0602651f7d4de5b
Broken pipe
GTester: last random seed: R02S904f11dc9fa1cca9f03a3c85d412ea5a
Broken pipe
GTester: last random seed: R02Sc8f5bc429684ac7cbab9f54a7e5d61d5
Broken pipe
GTester: last random seed: R02Se4f7c9b228fd28673d5ddff0cc341464
Broken pipe
GTester: last random seed: R02S2f421c20c2c3aa2d6f0f4d3d202a2ec9
Broken pipe
GTester: last random seed: R02Safe84586c406a653edef4e13b613f9aa
Broken pipe
GTester: last random seed: R02S546da7d89ca423c20d4e877227e57eb3
Broken pipe
GTester: last random seed: R02S5409da0d1a2516f18b0f0cb039cba01c
Broken pipe
GTester: last random seed: R02S5fbd51cd6f723009f6674df1734825b5
Broken pipe
GTester: last random seed: R02S7c27b16ffce9168dc748a618095ff50d
Broken pipe
GTester: last random seed: R02S6fe5eaec4a38c7875b9162fc591e8f84
Broken pipe
GTester: last random seed: R02Sb368e557eabd5a2aa58e468aacc46bf7
Broken pipe
GTester: last random seed: R02Sb5562b0bed29e9a2f3edeb1b927e6f7c
Broken pipe
GTester: last random seed: R02S9a609e3485a28d6590af363809571a60
Broken pipe
GTester: last random seed: R02S8e86aed7154b330e8080b55455c29af3
Broken pipe
GTester: last random seed: R02Sf36fcd809c010927cb050abbe5c75027
Broken pipe
GTester: last random seed: R02S75553a1cfb7e68f17ad1eb18b70f4a86
Broken pipe
GTester: last random seed: R02S99ba9cd83f36610bd1518872f36d460b
Broken pipe
GTester: last random seed: R02S43c4c3472bc97672c537d85c540f89d4
Broken pipe
GTester: last random seed: R02S2b1687370a83823a2a6a0c552821cdb2
Broken pipe
GTester: last random seed: R02Sa74c3d0d1aa67a0ba3ce1132a20b960b
Broken pipe
GTester: last random seed: R02Sa42e25679fa3d3bfa8b8a7ff2a6fab96
Broken pipe
GTester: last random seed: R02Sfb3279cbd801b787e54a27c487787716
Broken pipe
GTester: last random seed: R02S996f3b96481a33cdfe8915b43cb61623
Broken pipe
GTester: last random seed: R02S0f3fbcd1d4878c8a9365000265836f83
Broken pipe
GTester: last random seed: R02Sd9d11459db4e4aebca079d46f23d6cd1
Broken pipe
GTester: last random seed: R02S8c82a1b69f35fa90f36e2231050608e5
Broken pipe
GTester: last random seed: R02S3f72ee7774ed22e98fd210a1007140b4
Broken pipe
GTester: last random seed: R02S1711d2d7c8657a4389d5cb3524a48d1f
Broken pipe
GTester: last random seed: R02S3310ee9b512414a6fce2541789aa19b8
Broken pipe
GTester: last random seed: R02Sebcee5571e66a5154edc705485d646ae
Broken pipe
GTester: last random seed: R02Sae8623be2c81738fa91b0dee1890215b
Broken pipe
GTester: last random seed: R02Sd9cb695521dc33c826e44d41a9bdecce
Broken pipe
GTester: last random seed: R02Sa4fa38f69c4b04a398aa34a063e378fd
Broken pipe
GTester: last random seed: R02Sdfb022ba191909b37f4c26b12c63e952
Broken pipe
GTester: last random seed: R02S9b292aa0ba727d49967f2f5b5c83f984
Broken pipe
GTester: last random seed: R02Sc80088e2e6604c975931a1271c97d681
Broken pipe
GTester: last random seed: R02Sa7bebf773973c1e0701dcd01934e7919
Broken pipe
GTester: last random seed: R02Sb88cf4a7c95c803f7befd109360fcb63
Broken pipe
GTester: last random seed: R02Secf309569c97c0b592c24dde55b998d3
Broken pipe
GTester: last random seed: R02S9550e6faa18328e25098d2abba0fe506
Broken pipe
GTester: last random seed: R02S37172906cd54aef6a838ff0e5252c058
Broken pipe
GTester: last random seed: R02Se8dc3d1c4ae3f8f090969744ae2264ba
Broken pipe
GTester: last random seed: R02Sbfc69d4606695359bc1754ba89cf650d
Broken pipe
GTester: last random seed: R02Sed979befc7ad219420b1881d622d6f6f
Broken pipe
GTester: last random seed: R02Sf1dc2043786d2dfbf8dd252d3d589a4c
Broken pipe
GTester: last random seed: R02S0c7851ca7f3cbcd8fb713f550eafe99b
Broken pipe
GTester: last random seed: R02Sa9595a59593a296eb8688c53df4dd706
Broken pipe
GTester: last random seed: R02Sbab222c72111fc70a55102f1b0191fbd
Broken pipe
GTester: last random seed: R02S37482a549593974dd6d09f9de075754c
Broken pipe
GTester: last random seed: R02S51e1f0e1d641e4b4da1cd33bcffc386f
Broken pipe
GTester: last random seed: R02S35a6e3f2befcf76eb5dd87e85ccb0b3d
Broken pipe
GTester: last random seed: R02S006156f7fee6f6e40c8365d7bf68ca0c
Broken pipe
GTester: last random seed: R02Sb2bc390c6d385fc7b04447a2b3e67bf7
Broken pipe
GTester: last random seed: R02Sbd3371a9955850cc93eba217880a19de
Broken pipe
GTester: last random seed: R02S6f6442a72c57a41d5c5820197a476ce8
Broken pipe
GTester: last random seed: R02S7644bc254e0676a1b0b552a67e71e083
Broken pipe
GTester: last random seed: R02S457210218a162d15815e23a88610c74c
Broken pipe
GTester: last random seed: R02Sc9156a61f373c49218070a1e62ca0d7e
Broken pipe
GTester: last random seed: R02Sdce1c7b7d46f5e5b4473182f32e66d42
Broken pipe
GTester: last random seed: R02S81a6abe637736215b49be4666a8ed2c3
Broken pipe
GTester: last random seed: R02S32f3d1fc4f1b6971be471773c9ffd033
Broken pipe
GTester: last random seed: R02Seea73d230f83c9f994819513488dd118
Broken pipe
GTester: last random seed: R02S01f26806e9d135286c44d644efa94703
Broken pipe
GTester: last random seed: R02S64125647af762054e0f76db302067827
Broken pipe
GTester: last random seed: R02S247987569df4fb0ed6ebfc90e5f549c2
Broken pipe
GTester: last random seed: R02S7a979b28f9c12dccbbb65dce3de345ed
Broken pipe
GTester: last random seed: R02S87a1e85951cb42f3ff0fadcd01192878
Broken pipe
GTester: last random seed: R02Sf0d8c7ae4ba137d09ce720621ec99b66
Broken pipe
GTester: last random seed: R02S221cd731b7c29605959d6d8ca4a5cce6
Broken pipe
GTester: last random seed: R02Sbaab3a572cf5e535059a674697a963dd
Broken pipe
GTester: last random seed: R02S151580919206372abf40a4ddd6cb032a
Broken pipe
GTester: last random seed: R02S85b5edec6b55546edcc476d683ecb547
Broken pipe
GTester: last random seed: R02S5224aca212b471d94dd03b3bbbf56869
Broken pipe
GTester: last random seed: R02S37658b7de1f89515569d15b6c4f9a4be
Broken pipe
GTester: last random seed: R02S0f400820ef85271b0cd8ed584d21318a
Broken pipe
GTester: last random seed: R02S2a526160eb98f7c27140d78ec3c0ffb6
Broken pipe
GTester: last random seed: R02S3bebd21c3bfee0bed24fb7d26c86ad48
Broken pipe
GTester: last random seed: R02S2da4fee1a6110ee07b45911b784e296f
Broken pipe
GTester: last random seed: R02Sced9fc8ee572652521eb757bb95433a2
Broken pipe
GTester: last random seed: R02S998cda65f794d078e14bd78bd5e66ce5
Broken pipe
GTester: last random seed: R02S3f7ba7d6f74999c7898487c599e18ad3
Broken pipe
GTester: last random seed: R02S9f9ff1701d5cd6dcc7da96a795e32bcc
Broken pipe
GTester: last random seed: R02S5f6f9fac032f77c91ba8d04bda6c3723
Broken pipe
GTester: last random seed: R02Sf768033e672def964ddb28dfd1c7a7e6
Broken pipe
GTester: last random seed: R02Sd472b13ff84eafc968e1145e1e9c5232
make: *** [check-qtest-x86_64] Error 1
tests/docker/Makefile.include:118: recipe for target 'docker-run' failed
make[1]: *** [docker-run] Error 2
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-_5z78h0l/src'
tests/docker/Makefile.include:149: recipe for target 'docker-run-test-quick@centos6' failed
make: *** [docker-run-test-quick@centos6] Error 2
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
@ 2017-06-21 13:10 ` Paolo Bonzini
2017-06-22 6:54 ` Zhong Yang
0 siblings, 1 reply; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-21 13:10 UTC (permalink / raw)
To: Yang Zhong; +Cc: qemu-devel, a.rigo, anthony.xu
On 21/06/2017 12:19, Yang Zhong wrote:
> @@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
> }
> break;
> case QEMU_OPTION_no_kvm:
> +#ifdef CONFIG_TCG
> olist = qemu_find_opts("machine");
> qemu_opts_parse_noisily(olist, "accel=tcg", false);
> +#else
> + error_report("TCG is disabled");
This should not be necessary, it would work anyway.
> + exit(1);
> +#endif
> break;
> case QEMU_OPTION_no_kvm_pit: {
> error_report("warning: ignoring deprecated option");
> @@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
> configure_rtc(opts);
> break;
> case QEMU_OPTION_tb_size:
> +#ifdef CONFIG_TCG
> tcg_tb_size = strtol(optarg, NULL, 0);
> if (tcg_tb_size < 0) {
> tcg_tb_size = 0;
> }
> +#else
> + error_report("TCG is disabled");
> + exit(1);
> +#endif
This would regress the case where people are using -tb-size with KVM.
Just leave it aside.
> break;
> case QEMU_OPTION_icount:
> icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
> @@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
> qemu_opts_del(icount_opts);
> }
>
> +#ifdef CONFIG_TCG
> qemu_tcg_configure(accel_opts, &error_fatal);
Why is this appearing in this patch?
> +#endif
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
@ 2017-06-21 13:10 ` Paolo Bonzini
2017-06-22 7:06 ` Zhong Yang
0 siblings, 1 reply; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-21 13:10 UTC (permalink / raw)
To: Yang Zhong; +Cc: qemu-devel, a.rigo, anthony.xu
On 21/06/2017 12:19, Yang Zhong wrote:
> Move tcg_handle_interrupt() from translate-common.c to
> translate-all.c.
>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Why?
Paolo
> ---
> accel/tcg/Makefile.objs | 2 +-
> accel/tcg/translate-all.c | 30 ++++++++++++++++++++++++
> accel/tcg/translate-common.c | 56 --------------------------------------------
> cpus.c | 1 +
> 4 files changed, 32 insertions(+), 57 deletions(-)
> delete mode 100644 accel/tcg/translate-common.c
>
> diff --git a/accel/tcg/Makefile.objs b/accel/tcg/Makefile.objs
> index f173cd5..70cd474 100644
> --- a/accel/tcg/Makefile.objs
> +++ b/accel/tcg/Makefile.objs
> @@ -1,3 +1,3 @@
> obj-$(CONFIG_SOFTMMU) += tcg-all.o
> obj-$(CONFIG_SOFTMMU) += cputlb.o
> -obj-y += cpu-exec.o cpu-exec-common.o translate-all.o translate-common.o
> +obj-y += cpu-exec.o cpu-exec-common.o translate-all.o
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index 7b25a16..bb303e0 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -798,6 +798,33 @@ static void tb_htable_init(void)
> qht_init(&tcg_ctx.tb_ctx.htable, CODE_GEN_HTABLE_SIZE, mode);
> }
>
> +#ifndef CONFIG_USER_ONLY
> +/* mask must never be zero, except for A20 change call */
> +static void tcg_handle_interrupt(CPUState *cpu, int mask)
> +{
> + int old_mask;
> + g_assert(qemu_mutex_iothread_locked());
> +
> + old_mask = cpu->interrupt_request;
> + cpu->interrupt_request |= mask;
> +
> + /*
> + * If called from iothread context, wake the target cpu in
> + * case its halted.
> + */
> + if (!qemu_cpu_is_self(cpu)) {
> + qemu_cpu_kick(cpu);
> + } else {
> + cpu->icount_decr.u16.high = -1;
> + if (use_icount &&
> + !cpu->can_do_io
> + && (mask & ~old_mask) != 0) {
> + cpu_abort(cpu, "Raised interrupt while not in I/O function");
> + }
> + }
> +}
> +#endif
> +
> /* Must be called before using the QEMU cpus. 'tb_size' is the size
> (in bytes) allocated to the translation buffer. Zero means default
> size. */
> @@ -807,6 +834,9 @@ void tcg_exec_init(unsigned long tb_size)
> page_init();
> tb_htable_init();
> code_gen_alloc(tb_size);
> +#ifndef CONFIG_USER_ONLY
> + cpu_interrupt_handler = tcg_handle_interrupt;
> +#endif
> #if defined(CONFIG_SOFTMMU)
> /* There's no guest base to take into account, so go ahead and
> initialize the prologue now. */
> diff --git a/accel/tcg/translate-common.c b/accel/tcg/translate-common.c
> deleted file mode 100644
> index 40fe5a1..0000000
> --- a/accel/tcg/translate-common.c
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -/*
> - * Host code generation common components
> - *
> - * Copyright (c) 2015 Peter Crosthwaite <crosthwaite.peter@gmail.com>
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU Lesser General Public
> - * License as published by the Free Software Foundation; either
> - * version 2 of the License, or (at your option) any later version.
> - *
> - * This library is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - * Lesser General Public License for more details.
> - *
> - * You should have received a copy of the GNU Lesser General Public
> - * License along with this library; if not, see <http://www.gnu.org/licenses/>.
> - */
> -
> -#include "qemu/osdep.h"
> -#include "qemu-common.h"
> -#include "qom/cpu.h"
> -#include "sysemu/cpus.h"
> -#include "qemu/main-loop.h"
> -
> -uintptr_t qemu_real_host_page_size;
> -intptr_t qemu_real_host_page_mask;
> -
> -#ifndef CONFIG_USER_ONLY
> -/* mask must never be zero, except for A20 change call */
> -static void tcg_handle_interrupt(CPUState *cpu, int mask)
> -{
> - int old_mask;
> - g_assert(qemu_mutex_iothread_locked());
> -
> - old_mask = cpu->interrupt_request;
> - cpu->interrupt_request |= mask;
> -
> - /*
> - * If called from iothread context, wake the target cpu in
> - * case its halted.
> - */
> - if (!qemu_cpu_is_self(cpu)) {
> - qemu_cpu_kick(cpu);
> - } else {
> - cpu->icount_decr.u16.high = -1;
> - if (use_icount &&
> - !cpu->can_do_io
> - && (mask & ~old_mask) != 0) {
> - cpu_abort(cpu, "Raised interrupt while not in I/O function");
> - }
> - }
> -}
> -
> -CPUInterruptHandler cpu_interrupt_handler = tcg_handle_interrupt;
> -#endif
> diff --git a/cpus.c b/cpus.c
> index a86ea10..6ff3e37 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -76,6 +76,7 @@ int64_t max_advance;
> /* vcpu throttling controls */
> static QEMUTimer *throttle_timer;
> static unsigned int throttle_percentage;
> +CPUInterruptHandler cpu_interrupt_handler;
>
> #define CPU_THROTTLE_PCT_MIN 1
> #define CPU_THROTTLE_PCT_MAX 99
>
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
@ 2017-06-21 13:15 ` Paolo Bonzini
2017-06-22 8:03 ` Zhong Yang
2017-06-21 22:36 ` Richard Henderson
1 sibling, 1 reply; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-21 13:15 UTC (permalink / raw)
To: Yang Zhong; +Cc: qemu-devel, a.rigo, anthony.xu
On 21/06/2017 12:19, Yang Zhong wrote:
> Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
> tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
> file if tcg is disabled.
>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
> accel/stubs/tcg-stub.c | 8 ++++++++
> target/i386/cpu.h | 15 +++++++++++++--
> target/i386/fpu_helper.c | 8 +++-----
> 3 files changed, 24 insertions(+), 7 deletions(-)
>
> diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> index dafb1d0..91625a8 100644
> --- a/accel/stubs/tcg-stub.c
> +++ b/accel/stubs/tcg-stub.c
> @@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
> {
> }
>
> +void tcg_update_mxcsr(CPUX86State *env)
> +{
> +}
> +
> +void tcg_set_fpuc(CPUX86State *env)
> +{
> +}
> +
> void cpu_loop_exit(CPUState *cpu)
> {
> abort();
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 8b3b535..229b216 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -1643,8 +1643,19 @@ static inline int32_t x86_get_a20_mask(CPUX86State *env)
> }
>
> /* fpu_helper.c */
> -void cpu_set_mxcsr(CPUX86State *env, uint32_t val);
> -void cpu_set_fpuc(CPUX86State *env, uint16_t val);
> +void tcg_update_mxcsr(CPUX86State *env);
> +void tcg_set_fpuc(CPUX86State *env);
> +static inline void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> +{
> + env->mxcsr = mxcsr;
> + tcg_update_mxcsr(env);
Instead of having to add stubs, please guard the call with "if
(tcg_enabled())". Same below.
Paolo
> +}
> +
> +static inline void cpu_set_fpuc(CPUX86State *env, uint16_t fpuc)
> +{
> + env->fpuc = fpuc;
> + tcg_set_fpuc(env);
> +}
>
> /* mem_helper.c */
> void helper_lock_init(void);
> diff --git a/target/i386/fpu_helper.c b/target/i386/fpu_helper.c
> index 34fb5fc..a7550c9 100644
> --- a/target/i386/fpu_helper.c
> +++ b/target/i386/fpu_helper.c
> @@ -1550,12 +1550,11 @@ void helper_xsetbv(CPUX86State *env, uint32_t ecx, uint64_t mask)
> #define SSE_RC_CHOP 0x6000
> #define SSE_FZ 0x8000
>
> -void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> +void tcg_update_mxcsr(CPUX86State *env)
> {
> + uint32_t mxcsr = env->mxcsr;
> int rnd_type;
>
> - env->mxcsr = mxcsr;
> -
> /* set rounding mode */
> switch (mxcsr & SSE_RC_MASK) {
> default:
> @@ -1581,9 +1580,8 @@ void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> set_flush_to_zero((mxcsr & SSE_FZ) ? 1 : 0, &env->fp_status);
> }
>
> -void cpu_set_fpuc(CPUX86State *env, uint16_t val)
> +void tcg_set_fpuc(CPUX86State *env)
> {
> - env->fpuc = val;
> update_fp_status(env);
> }
>
>
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range()
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
@ 2017-06-21 13:17 ` Paolo Bonzini
0 siblings, 0 replies; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-21 13:17 UTC (permalink / raw)
To: Yang Zhong; +Cc: qemu-devel, a.rigo, anthony.xu
On 21/06/2017 12:19, Yang Zhong wrote:
> Remove the inline defintion of flush_icache_range() in tcg/i386/tcg-target.h.
> add the flush_icache_range() implementation in tcg-target.inc.c for kvm/tcg
> and flush_icache_range() implementation in tcg-stub.c for disable-tcg.
>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
This is used even on KVM (by non-x86 architectures). See
cpu_flush_icache_range.
You should move all flush_icache_range implementations to a separate
header file include/exec/icache.h.
Paolo
> ---
> accel/stubs/tcg-stub.c | 4 ++++
> tcg/i386/tcg-target.h | 5 ++---
> tcg/i386/tcg-target.inc.c | 4 ++++
> 3 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> index 91625a8..85b0239 100644
> --- a/accel/stubs/tcg-stub.c
> +++ b/accel/stubs/tcg-stub.c
> @@ -83,6 +83,10 @@ void tcg_set_fpuc(CPUX86State *env)
> {
> }
>
> +void flush_icache_range(uintptr_t start, uintptr_t stop)
> +{
> +}
> +
> void cpu_loop_exit(CPUState *cpu)
> {
> abort();
> diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h
> index 73a15f7..7559cb8 100644
> --- a/tcg/i386/tcg-target.h
> +++ b/tcg/i386/tcg-target.h
> @@ -162,9 +162,8 @@ extern bool have_popcnt;
> # define TCG_AREG0 TCG_REG_EBP
> #endif
>
> -static inline void flush_icache_range(uintptr_t start, uintptr_t stop)
> -{
> -}
> +void flush_icache_range(uintptr_t start, uintptr_t stop);
> +
>
> /* This defines the natural memory order supported by this
> * architecture before guarantees made by various barrier
> diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c
> index 01e3b4e..6572efc 100644
> --- a/tcg/i386/tcg-target.inc.c
> +++ b/tcg/i386/tcg-target.inc.c
> @@ -2751,3 +2751,7 @@ void tcg_register_jit(void *buf, size_t buf_size)
> tcg_register_jit_int(buf, buf_size, &debug_frame, sizeof(debug_frame));
> }
> #endif
> +
> +void flush_icache_range(uintptr_t start, uintptr_t stop)
> +{
> +}
>
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
` (15 preceding siblings ...)
2017-06-21 12:03 ` [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build no-reply
@ 2017-06-21 13:19 ` Paolo Bonzini
16 siblings, 0 replies; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-21 13:19 UTC (permalink / raw)
To: Yang Zhong; +Cc: qemu-devel, a.rigo, anthony.xu
On 21/06/2017 12:19, Yang Zhong wrote:
> This patchset rebased from Paolo's below patchset, which was based on
> QEMU 2.0.50 version.
> https://github.com/bonzini/qemu/tree/disable-tcg
Patches 7/8/11 seems fine, I have already queued them (though I still
have to test everything).
Paolo
> Since qemu-system-x86_64 enabled kvm and TCG accelators by default, in
> fact, the TCG accelator is NOT useful in the system build of x86 platform.
> This patchset will disable TCG for x86 platform if --disable-tcg option is
> added into ./configure command.
>
> The new configure build command like below
> (1)./configure
> tcg is enabled by default
>
> (2)./configure --disable-tcg
> tcg is disabled in i386 and x86_64 softmmu build
> tcg is enabled in others softmmu and all users build
>
> (3)./configure --disable-tcg --target-list=x86_64-softmmu, x86_64-linux-user
> tcg is disabled in x86_64 softmmu build
> tcg is enabled in x86_64 linux user build
>
> How to verify disable-tcg option
> (1)./configure
> a)all user and softmmu build are okay.
> b) CONFIG_TCG=y is set in $config_target_mak in all user and softmmu directory
> c)kvm starting vm is okay
> ./qemu-system-x86_64 -enable-kvm -cpu host -m 2G -smp cpus=4,cores=4,threads=1,\
> sockets=1 -drive format=raw,file=eywa.img,index=0,media=disk -nographic -serial \
> stdio -nodefaults
> d)tcg starting vm is okay
> ./qemu-system-x86_64 -m 2G -smp cpus=4,cores=4,threads=1,sockets=1 -drive format=raw,\
> file=eywa.img,index=0,media=disk -nographic -serial stdio -nodefaults
>
> (2) ./configure --disable-tcg
> a) all user and softmmu build are okay.
> b) CONFIG_TCG=y is not set in $config_target_mak in i386_softmmu and x86_64-softmmu
> directory
> c) kvm starting vm is okay
> ./qemu-system-x86_64 -enable-kvm -cpu host -m 2G -smp cpus=4,cores=4,threads=1,\
> sockets=1 -drive format=raw,file=eywa.img,index=0,media=disk -nographic -serial \
> stdio -nodefaults
> d) tcg starting vm is aborted
> The log as below:
> "tcg" accelerator not found.
> No accelerator found!
>
>
> Yang Zhong (15):
> configure: add the disable-tcg option
> vl: add CONFIG_TCG for tcg related code
> tcg: tcg_handle_interrupt() function
> tcg: change tcg_enabled()
> tcg: move page_size_init() function
> kvmvapic: remove tcg related code
> tcg: move cpu_sync_bndcs_hflags() function
> tcg: make cpu_get_fp80()/cpu_set_fp80() static
> tcg: add the tcg-stub.c file into accel/stubs/
> tcg: move tb related lock functions
> tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
> tcg: remove inline definition of flush_icache_range()
> tcg: disable tcg in CPUX86State struct
> tcg: add the CONFIG_TCG for header
> tcg: add the CONFIG_TCG into Makefiles
>
> Makefile.target | 4 +-
> accel/Makefile.objs | 2 +-
> accel/stubs/Makefile.objs | 1 +
> accel/stubs/tcg-stub.c | 129 +++++++++++++++++++++++++++++++++++++++++++
> accel/tcg/Makefile.objs | 2 +-
> accel/tcg/cpu-exec.c | 1 +
> accel/tcg/cputlb.c | 1 +
> accel/tcg/tcg-all.c | 2 +-
> accel/tcg/translate-all.c | 54 ++++++++++--------
> accel/tcg/translate-all.h | 3 +
> accel/tcg/translate-common.c | 56 -------------------
> bsd-user/main.c | 1 +
> configure | 28 +++++++++-
> cpus.c | 4 +-
> exec.c | 20 +++++++
> hw/i386/kvmvapic.c | 24 --------
> include/exec/cpu-defs.h | 4 +-
> include/exec/cputlb.h | 2 +-
> include/exec/exec-all.h | 53 +++++++++---------
> include/exec/helper-proto.h | 2 +
> include/qemu-common.h | 7 ++-
> linux-user/main.c | 2 +-
> target/i386/Makefile.objs | 7 ++-
> target/i386/cpu.h | 22 ++++++--
> target/i386/fpu_helper.c | 26 +--------
> target/i386/helper.c | 34 +++++++++++-
> target/i386/machine.c | 18 ++++++
> target/i386/mpx_helper.c | 30 ----------
> tcg/i386/tcg-target.h | 5 +-
> tcg/i386/tcg-target.inc.c | 4 ++
> tcg/tcg.h | 4 --
> trace/control-target.c | 1 -
> vl.c | 12 ++++
> 33 files changed, 356 insertions(+), 209 deletions(-)
> create mode 100644 accel/stubs/tcg-stub.c
> delete mode 100644 accel/tcg/translate-common.c
>
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
@ 2017-06-21 22:24 ` Richard Henderson
2017-06-22 9:32 ` Zhong Yang
0 siblings, 1 reply; 37+ messages in thread
From: Richard Henderson @ 2017-06-21 22:24 UTC (permalink / raw)
To: Yang Zhong, pbonzini; +Cc: anthony.xu, qemu-devel, a.rigo
On 06/21/2017 03:19 AM, Yang Zhong wrote:
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -52,7 +52,9 @@
>
> #include "exec/cpu-defs.h"
>
> +#ifdef CONFIG_TCG
> #include "fpu/softfloat.h"
> +#endif
>
> #define R_EAX 0
> #define R_ECX 1
> @@ -1130,8 +1132,9 @@ typedef struct CPUX86State {
>
> /* Fields up to this point are cleared by a CPU reset */
> struct {} end_reset_fields;
> -
> +#ifdef CONFIG_TCG
> CPU_COMMON
> +#endif
This is at the wrong level. If !CONFIG_TCG, then CPU_COMMON should be empty.
r~
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
@ 2017-06-21 22:33 ` Richard Henderson
2017-06-22 4:20 ` Thomas Huth
1 sibling, 0 replies; 37+ messages in thread
From: Richard Henderson @ 2017-06-21 22:33 UTC (permalink / raw)
To: Yang Zhong, pbonzini; +Cc: anthony.xu, qemu-devel, a.rigo
On 06/21/2017 03:19 AM, Yang Zhong wrote:
> +case "$target_name" in
> + alpha|arm|armeb|aarch64|cris|hppa|lm32|m68k|microblaze|microblazeel|mips|mipsel| \
> + mipsn32|mipsn32el|mips64|mips64el|moxie|nios2|or1k|ppc|ppcemb|ppc64|ppc64le|ppc64abi32| \
> + sh4|sh4eb|sparc|sparc64|sparc32plus|s390x|tilegx|tricore|unicore32|xtensa|xtensaeb)
> + if test "$target_softmmu" = "yes" ; then
> + echo "CONFIG_TCG=y" >> $config_target_mak
> + fi
> + ;;
> +esac
> +case "$target_name" in
> + i386|x86_64)
> + if test "$tcg" = "yes" -a "$target_softmmu" = "yes" ; then
> + echo "CONFIG_TCG=y" >> $config_target_mak
> + fi
> + ;;
> +esac
This is definitely the wrong way around. Test for the thing you want to
special case -- x86, when running on x86, and softmmu -- and then everything
else via *.
I strongly suspect this test should be
case "$cpu-$target-$tcg" in
x86_64-i386-softmmu-no | x86_64-x86_64-softmmu-no)
# CONFIG_TCG disabled.
;;
*)
echo "CONFIG_TCG=y" >> $config_target_mak
esac
This is easily extendable to allow TCG to be disabled for other KVM hosts.
r~
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
2017-06-21 13:15 ` Paolo Bonzini
@ 2017-06-21 22:36 ` Richard Henderson
1 sibling, 0 replies; 37+ messages in thread
From: Richard Henderson @ 2017-06-21 22:36 UTC (permalink / raw)
To: Yang Zhong, pbonzini; +Cc: anthony.xu, qemu-devel, a.rigo
On 06/21/2017 03:19 AM, Yang Zhong wrote:
> Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
> tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
> file if tcg is disabled.
>
> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> ---
> accel/stubs/tcg-stub.c | 8 ++++++++
> target/i386/cpu.h | 15 +++++++++++++--
> target/i386/fpu_helper.c | 8 +++-----
> 3 files changed, 24 insertions(+), 7 deletions(-)
>
> diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> index dafb1d0..91625a8 100644
> --- a/accel/stubs/tcg-stub.c
> +++ b/accel/stubs/tcg-stub.c
> @@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
> {
> }
>
> +void tcg_update_mxcsr(CPUX86State *env)
> +{
> +}
> +
> +void tcg_set_fpuc(CPUX86State *env)
> +{
> +}
Do not put x86-specific functions in what is clearly a target-independent file.
Paolo gave you one way of doing that for this case.
r~
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
2017-06-21 22:33 ` Richard Henderson
@ 2017-06-22 4:20 ` Thomas Huth
2017-06-22 6:22 ` Paolo Bonzini
1 sibling, 1 reply; 37+ messages in thread
From: Thomas Huth @ 2017-06-22 4:20 UTC (permalink / raw)
To: Yang Zhong, pbonzini; +Cc: anthony.xu, qemu-devel, a.rigo
On 21.06.2017 12:19, Yang Zhong wrote:
> Add the disable-tcg option into configure and echo CONFIG_TCG=y into
> $config_target_mak. The default tcg is enabled for all build. If tcg
> is disabled in the build, only i386|x86_64 softmmu option can be disabled,
> other softmmu of tagets and users build defaultly enabled the tcg.
Why do you want to limit this disablement to x86 only? There are also
other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
might be possible there, too. So I think it might be better to check
whether KVM is possible instead.
Thomas
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-22 4:20 ` Thomas Huth
@ 2017-06-22 6:22 ` Paolo Bonzini
2017-06-22 6:33 ` Thomas Huth
0 siblings, 1 reply; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-22 6:22 UTC (permalink / raw)
To: Thomas Huth; +Cc: Yang Zhong, anthony xu, qemu-devel, a rigo
> On 21.06.2017 12:19, Yang Zhong wrote:
> > Add the disable-tcg option into configure and echo CONFIG_TCG=y into
> > $config_target_mak. The default tcg is enabled for all build. If tcg
> > is disabled in the build, only i386|x86_64 softmmu option can be disabled,
> > other softmmu of tagets and users build defaultly enabled the tcg.
> Why do you want to limit this disablement to x86 only? There are also
> other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
> might be possible there, too. So I think it might be better to check
> whether KVM is possible instead.
You need to be careful and not use any helper from e.g. KVM or migration
code. So I would be very surprised if any other architecture compiles
with --disable-tcg.
Paolo
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-22 6:22 ` Paolo Bonzini
@ 2017-06-22 6:33 ` Thomas Huth
2017-06-22 9:26 ` Paolo Bonzini
0 siblings, 1 reply; 37+ messages in thread
From: Thomas Huth @ 2017-06-22 6:33 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Yang Zhong, anthony xu, qemu-devel, a rigo
On 22.06.2017 08:22, Paolo Bonzini wrote:
>
>> On 21.06.2017 12:19, Yang Zhong wrote:
>>> Add the disable-tcg option into configure and echo CONFIG_TCG=y into
>>> $config_target_mak. The default tcg is enabled for all build. If tcg
>>> is disabled in the build, only i386|x86_64 softmmu option can be disabled,
>>> other softmmu of tagets and users build defaultly enabled the tcg.
>> Why do you want to limit this disablement to x86 only? There are also
>> other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
>> might be possible there, too. So I think it might be better to check
>> whether KVM is possible instead.
>
> You need to be careful and not use any helper from e.g. KVM or migration
> code. So I would be very surprised if any other architecture compiles
> with --disable-tcg.
OK, fair, but we finally might want to get there, so I think we should
allow the parameter in the configure script for other architectures,
too, and then fix the bugs once we can try it out.
Thomas
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code
2017-06-21 13:10 ` Paolo Bonzini
@ 2017-06-22 6:54 ` Zhong Yang
0 siblings, 0 replies; 37+ messages in thread
From: Zhong Yang @ 2017-06-22 6:54 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, a.rigo, anthony.xu, yang.zhong
On Wed, Jun 21, 2017 at 03:10:36PM +0200, Paolo Bonzini wrote:
>
>
> On 21/06/2017 12:19, Yang Zhong wrote:
> > @@ -3738,8 +3738,13 @@ int main(int argc, char **argv, char **envp)
> > }
> > break;
> > case QEMU_OPTION_no_kvm:
> > +#ifdef CONFIG_TCG
> > olist = qemu_find_opts("machine");
> > qemu_opts_parse_noisily(olist, "accel=tcg", false);
> > +#else
> > + error_report("TCG is disabled");
>
> This should not be necessary, it would work anyway.
>
Hello Paolo,
You are right, i justly did the test to verify your comment, i will remove this CONFIG_TCG. thanks!
Yang
> > + exit(1);
> > +#endif
> > break;
> > case QEMU_OPTION_no_kvm_pit: {
> > error_report("warning: ignoring deprecated option");
> > @@ -3915,10 +3920,15 @@ int main(int argc, char **argv, char **envp)
> > configure_rtc(opts);
> > break;
> > case QEMU_OPTION_tb_size:
> > +#ifdef CONFIG_TCG
> > tcg_tb_size = strtol(optarg, NULL, 0);
> > if (tcg_tb_size < 0) {
> > tcg_tb_size = 0;
> > }
> > +#else
> > + error_report("TCG is disabled");
> > + exit(1);
> > +#endif
>
> This would regress the case where people are using -tb-size with KVM.
> Just leave it aside.
>
Hello Paolo,
The tb_size is only useful in TCG mode, only tcg_init() will call this variable.
If TCG is disabled in compile, the KVM will not need this variable. Of course, if
we keep this variable in pure KVM mode, there is not any side effect. What's your
opinion? thanks!
Yang
> > break;
> > case QEMU_OPTION_icount:
> > icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"),
> > @@ -4457,7 +4467,9 @@ int main(int argc, char **argv, char **envp)
> > qemu_opts_del(icount_opts);
> > }
> >
> > +#ifdef CONFIG_TCG
> > qemu_tcg_configure(accel_opts, &error_fatal);
>
> Why is this appearing in this patch?
>
Hello Paolo,
If the TCG is disabled, the qemu_tcg_configure() is not useful, this function only set
the single or mutiple thread for TCG. thanks!
Yang
> > +#endif
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function
2017-06-21 13:10 ` Paolo Bonzini
@ 2017-06-22 7:06 ` Zhong Yang
2017-06-22 9:29 ` Paolo Bonzini
0 siblings, 1 reply; 37+ messages in thread
From: Zhong Yang @ 2017-06-22 7:06 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, a.rigo, anthony.xu, yang.zhong
On Wed, Jun 21, 2017 at 03:10:55PM +0200, Paolo Bonzini wrote:
>
>
> On 21/06/2017 12:19, Yang Zhong wrote:
> > Move tcg_handle_interrupt() from translate-common.c to
> > translate-all.c.
> >
> > Signed-off-by: Yang Zhong <yang.zhong@intel.com>
>
> Why?
>
> Paolo
>
Hello Paolo,
translate-common.c only include one tcg_handle_interrupt() fucntion, when i
move tcpu_interrupt_handler = tcg_handle_interrupt in tcg_exec_init() for disable-tcg,
maybe moving the tcg_handle_interrupt() function definition into same file with tcg_exec_init()
function is better. those are like cpu_interrupt_handler = kvm_handle_interrupt did in kvm-all.c. thanks!
Yang
> > ---
> > accel/tcg/Makefile.objs | 2 +-
> > accel/tcg/translate-all.c | 30 ++++++++++++++++++++++++
> > accel/tcg/translate-common.c | 56 --------------------------------------------
> > cpus.c | 1 +
> > 4 files changed, 32 insertions(+), 57 deletions(-)
> > delete mode 100644 accel/tcg/translate-common.c
> >
> > diff --git a/accel/tcg/Makefile.objs b/accel/tcg/Makefile.objs
> > index f173cd5..70cd474 100644
> > --- a/accel/tcg/Makefile.objs
> > +++ b/accel/tcg/Makefile.objs
> > @@ -1,3 +1,3 @@
> > obj-$(CONFIG_SOFTMMU) += tcg-all.o
> > obj-$(CONFIG_SOFTMMU) += cputlb.o
> > -obj-y += cpu-exec.o cpu-exec-common.o translate-all.o translate-common.o
> > +obj-y += cpu-exec.o cpu-exec-common.o translate-all.o
> > diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> > index 7b25a16..bb303e0 100644
> > --- a/accel/tcg/translate-all.c
> > +++ b/accel/tcg/translate-all.c
> > @@ -798,6 +798,33 @@ static void tb_htable_init(void)
> > qht_init(&tcg_ctx.tb_ctx.htable, CODE_GEN_HTABLE_SIZE, mode);
> > }
> >
> > +#ifndef CONFIG_USER_ONLY
> > +/* mask must never be zero, except for A20 change call */
> > +static void tcg_handle_interrupt(CPUState *cpu, int mask)
> > +{
> > + int old_mask;
> > + g_assert(qemu_mutex_iothread_locked());
> > +
> > + old_mask = cpu->interrupt_request;
> > + cpu->interrupt_request |= mask;
> > +
> > + /*
> > + * If called from iothread context, wake the target cpu in
> > + * case its halted.
> > + */
> > + if (!qemu_cpu_is_self(cpu)) {
> > + qemu_cpu_kick(cpu);
> > + } else {
> > + cpu->icount_decr.u16.high = -1;
> > + if (use_icount &&
> > + !cpu->can_do_io
> > + && (mask & ~old_mask) != 0) {
> > + cpu_abort(cpu, "Raised interrupt while not in I/O function");
> > + }
> > + }
> > +}
> > +#endif
> > +
> > /* Must be called before using the QEMU cpus. 'tb_size' is the size
> > (in bytes) allocated to the translation buffer. Zero means default
> > size. */
> > @@ -807,6 +834,9 @@ void tcg_exec_init(unsigned long tb_size)
> > page_init();
> > tb_htable_init();
> > code_gen_alloc(tb_size);
> > +#ifndef CONFIG_USER_ONLY
> > + cpu_interrupt_handler = tcg_handle_interrupt;
> > +#endif
> > #if defined(CONFIG_SOFTMMU)
> > /* There's no guest base to take into account, so go ahead and
> > initialize the prologue now. */
> > diff --git a/accel/tcg/translate-common.c b/accel/tcg/translate-common.c
> > deleted file mode 100644
> > index 40fe5a1..0000000
> > --- a/accel/tcg/translate-common.c
> > +++ /dev/null
> > @@ -1,56 +0,0 @@
> > -/*
> > - * Host code generation common components
> > - *
> > - * Copyright (c) 2015 Peter Crosthwaite <crosthwaite.peter@gmail.com>
> > - *
> > - * This library is free software; you can redistribute it and/or
> > - * modify it under the terms of the GNU Lesser General Public
> > - * License as published by the Free Software Foundation; either
> > - * version 2 of the License, or (at your option) any later version.
> > - *
> > - * This library is distributed in the hope that it will be useful,
> > - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> > - * Lesser General Public License for more details.
> > - *
> > - * You should have received a copy of the GNU Lesser General Public
> > - * License along with this library; if not, see <http://www.gnu.org/licenses/>.
> > - */
> > -
> > -#include "qemu/osdep.h"
> > -#include "qemu-common.h"
> > -#include "qom/cpu.h"
> > -#include "sysemu/cpus.h"
> > -#include "qemu/main-loop.h"
> > -
> > -uintptr_t qemu_real_host_page_size;
> > -intptr_t qemu_real_host_page_mask;
> > -
> > -#ifndef CONFIG_USER_ONLY
> > -/* mask must never be zero, except for A20 change call */
> > -static void tcg_handle_interrupt(CPUState *cpu, int mask)
> > -{
> > - int old_mask;
> > - g_assert(qemu_mutex_iothread_locked());
> > -
> > - old_mask = cpu->interrupt_request;
> > - cpu->interrupt_request |= mask;
> > -
> > - /*
> > - * If called from iothread context, wake the target cpu in
> > - * case its halted.
> > - */
> > - if (!qemu_cpu_is_self(cpu)) {
> > - qemu_cpu_kick(cpu);
> > - } else {
> > - cpu->icount_decr.u16.high = -1;
> > - if (use_icount &&
> > - !cpu->can_do_io
> > - && (mask & ~old_mask) != 0) {
> > - cpu_abort(cpu, "Raised interrupt while not in I/O function");
> > - }
> > - }
> > -}
> > -
> > -CPUInterruptHandler cpu_interrupt_handler = tcg_handle_interrupt;
> > -#endif
> > diff --git a/cpus.c b/cpus.c
> > index a86ea10..6ff3e37 100644
> > --- a/cpus.c
> > +++ b/cpus.c
> > @@ -76,6 +76,7 @@ int64_t max_advance;
> > /* vcpu throttling controls */
> > static QEMUTimer *throttle_timer;
> > static unsigned int throttle_percentage;
> > +CPUInterruptHandler cpu_interrupt_handler;
> >
> > #define CPU_THROTTLE_PCT_MIN 1
> > #define CPU_THROTTLE_PCT_MAX 99
> >
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
2017-06-21 13:15 ` Paolo Bonzini
@ 2017-06-22 8:03 ` Zhong Yang
2017-06-22 8:42 ` Paolo Bonzini
0 siblings, 1 reply; 37+ messages in thread
From: Zhong Yang @ 2017-06-22 8:03 UTC (permalink / raw)
To: Paolo Bonzini
Cc: qemu-devel, anthony.xu, a.rigo, Richard Henderson, Thomas Huth
On Wed, Jun 21, 2017 at 03:15:25PM +0200, Paolo Bonzini wrote:
>
>
> On 21/06/2017 12:19, Yang Zhong wrote:
> > Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
> > tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
> > file if tcg is disabled.
> >
> > Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> > ---
> > accel/stubs/tcg-stub.c | 8 ++++++++
> > target/i386/cpu.h | 15 +++++++++++++--
> > target/i386/fpu_helper.c | 8 +++-----
> > 3 files changed, 24 insertions(+), 7 deletions(-)
> >
> > diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> > index dafb1d0..91625a8 100644
> > --- a/accel/stubs/tcg-stub.c
> > +++ b/accel/stubs/tcg-stub.c
> > @@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
> > {
> > }
> >
> > +void tcg_update_mxcsr(CPUX86State *env)
> > +{
> > +}
> > +
> > +void tcg_set_fpuc(CPUX86State *env)
> > +{
> > +}
> > +
> > void cpu_loop_exit(CPUState *cpu)
> > {
> > abort();
> > diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> > index 8b3b535..229b216 100644
> > --- a/target/i386/cpu.h
> > +++ b/target/i386/cpu.h
> > @@ -1643,8 +1643,19 @@ static inline int32_t x86_get_a20_mask(CPUX86State *env)
> > }
> >
> > /* fpu_helper.c */
> > -void cpu_set_mxcsr(CPUX86State *env, uint32_t val);
> > -void cpu_set_fpuc(CPUX86State *env, uint16_t val);
> > +void tcg_update_mxcsr(CPUX86State *env);
> > +void tcg_set_fpuc(CPUX86State *env);
> > +static inline void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> > +{
> > + env->mxcsr = mxcsr;
> > + tcg_update_mxcsr(env);
>
> Instead of having to add stubs, please guard the call with "if
> (tcg_enabled())". Same below.
>
> Paolo
>
Hello Paolo,
Got it! thanks!
From your comments + Richard Henderson's comments, i got below guideline
(1) accel/stubs/tcg-stub.c
This file is target-independent file, do not add x86-specific stubs functions into this file.
(2) there are three kind of methods to mask TCG relative function
a) if(tcg_enabled())
b) if CONFIG_TCG
c) stub function
Paolo, which one is your prefer? a) ? please also make sure your prefer sequence, a) > b) > c) ?
Yang
> > +}
> > +
> > +static inline void cpu_set_fpuc(CPUX86State *env, uint16_t fpuc)
> > +{
> > + env->fpuc = fpuc;
> > + tcg_set_fpuc(env);
> > +}
> >
> > /* mem_helper.c */
> > void helper_lock_init(void);
> > diff --git a/target/i386/fpu_helper.c b/target/i386/fpu_helper.c
> > index 34fb5fc..a7550c9 100644
> > --- a/target/i386/fpu_helper.c
> > +++ b/target/i386/fpu_helper.c
> > @@ -1550,12 +1550,11 @@ void helper_xsetbv(CPUX86State *env, uint32_t ecx, uint64_t mask)
> > #define SSE_RC_CHOP 0x6000
> > #define SSE_FZ 0x8000
> >
> > -void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> > +void tcg_update_mxcsr(CPUX86State *env)
> > {
> > + uint32_t mxcsr = env->mxcsr;
> > int rnd_type;
> >
> > - env->mxcsr = mxcsr;
> > -
> > /* set rounding mode */
> > switch (mxcsr & SSE_RC_MASK) {
> > default:
> > @@ -1581,9 +1580,8 @@ void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> > set_flush_to_zero((mxcsr & SSE_FZ) ? 1 : 0, &env->fp_status);
> > }
> >
> > -void cpu_set_fpuc(CPUX86State *env, uint16_t val)
> > +void tcg_set_fpuc(CPUX86State *env)
> > {
> > - env->fpuc = val;
> > update_fp_status(env);
> > }
> >
> >
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
2017-06-22 8:03 ` Zhong Yang
@ 2017-06-22 8:42 ` Paolo Bonzini
0 siblings, 0 replies; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-22 8:42 UTC (permalink / raw)
To: Zhong Yang; +Cc: qemu-devel, anthony xu, a rigo, Richard Henderson, Thomas Huth
----- Original Message -----
> From: "Zhong Yang" <yang.zhong@intel.com>
> To: "Paolo Bonzini" <pbonzini@redhat.com>
> Cc: qemu-devel@nongnu.org, "anthony xu" <anthony.xu@intel.com>, "a rigo" <a.rigo@virtualopensystems.com>, "Richard
> Henderson" <rth@twiddle.net>, "Thomas Huth" <thuth@redhat.com>
> Sent: Thursday, June 22, 2017 10:03:25 AM
> Subject: Re: [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc()
>
> On Wed, Jun 21, 2017 at 03:15:25PM +0200, Paolo Bonzini wrote:
> >
> >
> > On 21/06/2017 12:19, Yang Zhong wrote:
> > > Split the cpu_set_mxcsr()/cpu_set_fpuc() with specific tcg code.
> > > tcg_update_mxcsr()/tcg_set_fpuc() need be implemented in tcg-stub.c
> > > file if tcg is disabled.
> > >
> > > Signed-off-by: Yang Zhong <yang.zhong@intel.com>
> > > ---
> > > accel/stubs/tcg-stub.c | 8 ++++++++
> > > target/i386/cpu.h | 15 +++++++++++++--
> > > target/i386/fpu_helper.c | 8 +++-----
> > > 3 files changed, 24 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
> > > index dafb1d0..91625a8 100644
> > > --- a/accel/stubs/tcg-stub.c
> > > +++ b/accel/stubs/tcg-stub.c
> > > @@ -75,6 +75,14 @@ void dump_opcount_info(FILE *f, fprintf_function
> > > cpu_fprintf)
> > > {
> > > }
> > >
> > > +void tcg_update_mxcsr(CPUX86State *env)
> > > +{
> > > +}
> > > +
> > > +void tcg_set_fpuc(CPUX86State *env)
> > > +{
> > > +}
> > > +
> > > void cpu_loop_exit(CPUState *cpu)
> > > {
> > > abort();
> > > diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> > > index 8b3b535..229b216 100644
> > > --- a/target/i386/cpu.h
> > > +++ b/target/i386/cpu.h
> > > @@ -1643,8 +1643,19 @@ static inline int32_t x86_get_a20_mask(CPUX86State
> > > *env)
> > > }
> > >
> > > /* fpu_helper.c */
> > > -void cpu_set_mxcsr(CPUX86State *env, uint32_t val);
> > > -void cpu_set_fpuc(CPUX86State *env, uint16_t val);
> > > +void tcg_update_mxcsr(CPUX86State *env);
> > > +void tcg_set_fpuc(CPUX86State *env);
> > > +static inline void cpu_set_mxcsr(CPUX86State *env, uint32_t mxcsr)
> > > +{
> > > + env->mxcsr = mxcsr;
> > > + tcg_update_mxcsr(env);
> >
> > Instead of having to add stubs, please guard the call with "if
> > (tcg_enabled())". Same below.
> >
> > Paolo
> >
> Hello Paolo,
>
> Got it! thanks!
>
> From your comments + Richard Henderson's comments, i got below guideline
> (1) accel/stubs/tcg-stub.c
> This file is target-independent file, do not add x86-specific stubs
> functions into this file.
>
> (2) there are three kind of methods to mask TCG relative function
> a) if(tcg_enabled())
> b) if CONFIG_TCG
> c) stub function
>
> Paolo, which one is your prefer? a) ? please also make sure your prefer
> sequence, a) > b) > c) ?
There is also
d) method in AccelClass
It seldom makes sense, but when it does it's the best. Apart from this one,
a) > c) > b).
For target-independent code, "c" is more often the solution. For target-dependent
code, "a" is more common.
Paolo
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-22 6:33 ` Thomas Huth
@ 2017-06-22 9:26 ` Paolo Bonzini
2017-06-22 9:30 ` Thomas Huth
0 siblings, 1 reply; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-22 9:26 UTC (permalink / raw)
To: Thomas Huth; +Cc: Yang Zhong, anthony xu, qemu-devel, a rigo
On 22/06/2017 08:33, Thomas Huth wrote:
> On 22.06.2017 08:22, Paolo Bonzini wrote:
>>
>>> On 21.06.2017 12:19, Yang Zhong wrote:
>>>> Add the disable-tcg option into configure and echo CONFIG_TCG=y into
>>>> $config_target_mak. The default tcg is enabled for all build. If tcg
>>>> is disabled in the build, only i386|x86_64 softmmu option can be disabled,
>>>> other softmmu of tagets and users build defaultly enabled the tcg.
>>> Why do you want to limit this disablement to x86 only? There are also
>>> other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
>>> might be possible there, too. So I think it might be better to check
>>> whether KVM is possible instead.
>>
>> You need to be careful and not use any helper from e.g. KVM or migration
>> code. So I would be very surprised if any other architecture compiles
>> with --disable-tcg.
>
> OK, fair, but we finally might want to get there, so I think we should
> allow the parameter in the configure script for other architectures,
> too, and then fix the bugs once we can try it out.
I think it's the other way round---when someone wants to fix it, they
should add their architecture to the list of targets that support
--disable-tcg. "./configure <anything>", as a goal, should fail
immediately if make won't succeed; compilation errors are always a worse
experience.
Paolo
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function
2017-06-22 7:06 ` Zhong Yang
@ 2017-06-22 9:29 ` Paolo Bonzini
0 siblings, 0 replies; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-22 9:29 UTC (permalink / raw)
To: Zhong Yang; +Cc: qemu-devel, a.rigo, anthony.xu
On 22/06/2017 09:06, Zhong Yang wrote:
>> On 21/06/2017 12:19, Yang Zhong wrote:
>>> Move tcg_handle_interrupt() from translate-common.c to
>>> translate-all.c.
>>>
>>> Signed-off-by: Yang Zhong <yang.zhong@intel.com>
>> Why?
>>
>> Paolo
>>
> Hello Paolo,
>
> translate-common.c only include one tcg_handle_interrupt() fucntion, when i
> move tcpu_interrupt_handler = tcg_handle_interrupt in tcg_exec_init() for disable-tcg,
> maybe moving the tcg_handle_interrupt() function definition into same file with tcg_exec_init()
> function is better. those are like cpu_interrupt_handler = kvm_handle_interrupt did in kvm-all.c. thanks!
Looking again at translate-common.c, it makes more sense to merge it
with accel/tcg/tcg-all.c. The tcg_handle_interrupt can become static
and the cpu_interrupt_handler assignment can go in tcg-all.c's tcg_init
function.
The declaration for cpu_interrupt_handler can be placed in qom/cpu.c.
Paolo
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-22 9:26 ` Paolo Bonzini
@ 2017-06-22 9:30 ` Thomas Huth
2017-06-22 9:32 ` Paolo Bonzini
0 siblings, 1 reply; 37+ messages in thread
From: Thomas Huth @ 2017-06-22 9:30 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Yang Zhong, anthony xu, qemu-devel, a rigo
On 22.06.2017 11:26, Paolo Bonzini wrote:
>
>
> On 22/06/2017 08:33, Thomas Huth wrote:
>> On 22.06.2017 08:22, Paolo Bonzini wrote:
>>>
>>>> On 21.06.2017 12:19, Yang Zhong wrote:
>>>>> Add the disable-tcg option into configure and echo CONFIG_TCG=y into
>>>>> $config_target_mak. The default tcg is enabled for all build. If tcg
>>>>> is disabled in the build, only i386|x86_64 softmmu option can be disabled,
>>>>> other softmmu of tagets and users build defaultly enabled the tcg.
>>>> Why do you want to limit this disablement to x86 only? There are also
>>>> other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
>>>> might be possible there, too. So I think it might be better to check
>>>> whether KVM is possible instead.
>>>
>>> You need to be careful and not use any helper from e.g. KVM or migration
>>> code. So I would be very surprised if any other architecture compiles
>>> with --disable-tcg.
>>
>> OK, fair, but we finally might want to get there, so I think we should
>> allow the parameter in the configure script for other architectures,
>> too, and then fix the bugs once we can try it out.
>
> I think it's the other way round---when someone wants to fix it, they
> should add their architecture to the list of targets that support
> --disable-tcg. "./configure <anything>", as a goal, should fail
> immediately if make won't succeed; compilation errors are always a worse
> experience.
Fine for me, too, but then the configure script should exit with a
proper error message when the user tried to specify --disable-tcg on a
non-x86 architecture. If I get the current patch right, it silently
falls back to CONFIG_TCG=y instead, which is IMHO also a bad experience.
Thomas
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct
2017-06-21 22:24 ` Richard Henderson
@ 2017-06-22 9:32 ` Zhong Yang
0 siblings, 0 replies; 37+ messages in thread
From: Zhong Yang @ 2017-06-22 9:32 UTC (permalink / raw)
To: Richard Henderson, Paolo Bonzini
Cc: qemu-devel, anthony.xu, a.rigo, Thomas Huth, yang.zhong
On Wed, Jun 21, 2017 at 03:24:29PM -0700, Richard Henderson wrote:
> On 06/21/2017 03:19 AM, Yang Zhong wrote:
> >--- a/target/i386/cpu.h
> >+++ b/target/i386/cpu.h
> >@@ -52,7 +52,9 @@
> > #include "exec/cpu-defs.h"
> >+#ifdef CONFIG_TCG
> > #include "fpu/softfloat.h"
> >+#endif
> > #define R_EAX 0
> > #define R_ECX 1
> >@@ -1130,8 +1132,9 @@ typedef struct CPUX86State {
> > /* Fields up to this point are cleared by a CPU reset */
> > struct {} end_reset_fields;
> >-
> >+#ifdef CONFIG_TCG
> > CPU_COMMON
> >+#endif
>
> This is at the wrong level. If !CONFIG_TCG, then CPU_COMMON should be empty.
>
>
> r~
Hello Richard,
In fact, i can remove this CONFIG_TCG for CPU_COMMON in the CPUX86State struct
because there is one change in the same patch ID.
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h index 5f4e303..bc8e7f8 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -25,7 +25,9 @@
#include "qemu/host-utils.h"
#include "qemu/queue.h"
+#ifdef CONFIG_TCG
#include "tcg-target.h"
+#endif
#ifndef CONFIG_USER_ONLY
#include "exec/hwaddr.h"
#endif
@@ -54,7 +56,7 @@ typedef uint64_t target_ulong; #error TARGET_LONG_SIZE undefined #endif
-#if !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
/* use a fully associative victim tlb of 8 entries */ #define CPU_VTLB_SIZE 8
if tcg is disabled, CPU_COMMON_TLB is NULL.
#define CPU_COMMON \
/* soft mmu support */ \
CPU_COMMON_TLB \
So the CPU_COMMON should be NULL if the tcg is disabled.
Yang
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option
2017-06-22 9:30 ` Thomas Huth
@ 2017-06-22 9:32 ` Paolo Bonzini
0 siblings, 0 replies; 37+ messages in thread
From: Paolo Bonzini @ 2017-06-22 9:32 UTC (permalink / raw)
To: Thomas Huth; +Cc: Yang Zhong, anthony xu, qemu-devel, a rigo
On 22/06/2017 11:30, Thomas Huth wrote:
> On 22.06.2017 11:26, Paolo Bonzini wrote:
>>
>>
>> On 22/06/2017 08:33, Thomas Huth wrote:
>>> On 22.06.2017 08:22, Paolo Bonzini wrote:
>>>>
>>>>> On 21.06.2017 12:19, Yang Zhong wrote:
>>>>>> Add the disable-tcg option into configure and echo CONFIG_TCG=y into
>>>>>> $config_target_mak. The default tcg is enabled for all build. If tcg
>>>>>> is disabled in the build, only i386|x86_64 softmmu option can be disabled,
>>>>>> other softmmu of tagets and users build defaultly enabled the tcg.
>>>>> Why do you want to limit this disablement to x86 only? There are also
>>>>> other architectures that support KVM (ARM, PPC, MIPS), so disabling TCG
>>>>> might be possible there, too. So I think it might be better to check
>>>>> whether KVM is possible instead.
>>>>
>>>> You need to be careful and not use any helper from e.g. KVM or migration
>>>> code. So I would be very surprised if any other architecture compiles
>>>> with --disable-tcg.
>>>
>>> OK, fair, but we finally might want to get there, so I think we should
>>> allow the parameter in the configure script for other architectures,
>>> too, and then fix the bugs once we can try it out.
>>
>> I think it's the other way round---when someone wants to fix it, they
>> should add their architecture to the list of targets that support
>> --disable-tcg. "./configure <anything>", as a goal, should fail
>> immediately if make won't succeed; compilation errors are always a worse
>> experience.
>
> Fine for me, too, but then the configure script should exit with a
> proper error message when the user tried to specify --disable-tcg on a
> non-x86 architecture. If I get the current patch right, it silently
> falls back to CONFIG_TCG=y instead, which is IMHO also a bad experience.
Yes, I agree. Thanks for reviewing the patch.
Paolo
^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2017-06-22 9:32 UTC | newest]
Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
2017-06-21 22:33 ` Richard Henderson
2017-06-22 4:20 ` Thomas Huth
2017-06-22 6:22 ` Paolo Bonzini
2017-06-22 6:33 ` Thomas Huth
2017-06-22 9:26 ` Paolo Bonzini
2017-06-22 9:30 ` Thomas Huth
2017-06-22 9:32 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
2017-06-21 13:10 ` Paolo Bonzini
2017-06-22 6:54 ` Zhong Yang
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
2017-06-21 13:10 ` Paolo Bonzini
2017-06-22 7:06 ` Zhong Yang
2017-06-22 9:29 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled() Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/ Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
2017-06-21 13:15 ` Paolo Bonzini
2017-06-22 8:03 ` Zhong Yang
2017-06-22 8:42 ` Paolo Bonzini
2017-06-21 22:36 ` Richard Henderson
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
2017-06-21 13:17 ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
2017-06-21 22:24 ` Richard Henderson
2017-06-22 9:32 ` Zhong Yang
2017-06-21 10:20 ` [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header Yang Zhong
2017-06-21 10:20 ` [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles Yang Zhong
2017-06-21 12:03 ` [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build no-reply
2017-06-21 13:19 ` Paolo Bonzini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.