mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
* only build util/async-teardown.c when system build is requested
* target/i386: fix BQL handling of the legacy FERR interrupts * target/i386: fix memory operand size for CVTPS2PD * target/i386: Add support for AMX-COMPLEX in CPUID enumeration * compile plugins on Darwin * configure and meson cleanups * drop mkvenv support for Python 3.7 and Debian10 * add wrap file for libblkio * tweak KVM stubs -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmT5t6UUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroMmjwf+MpvVuq+nn+3PqGUXgnzJx5ccA5ne O9Xy8+1GdlQPzBw/tPovxXDSKn3HQtBfxObn2CCE1tu/4uHWpBA1Vksn++NHdUf2 P0yoHxGskJu5iYYTtIcNw5cH2i+AizdiXuEjhfNjqD5Y234cFoHnUApt9e3zBvVO cwGD7WpPuSb4g38hHkV6nKcx72o7b4ejDToqUVZJ2N+RkddSqB03fSdrOru0hR7x V+lay0DYdFszNDFm05LJzfDbcrHuSryGA91wtty7Fzj6QhR/HBHQCUZJxMB5PI7F Zy4Zdpu60zxtSxUqeKgIi7UhNFgMcax2Hf9QEqdc/B4ARoBbboh4q4u8kQ== =dH7/ -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * only build util/async-teardown.c when system build is requested * target/i386: fix BQL handling of the legacy FERR interrupts * target/i386: fix memory operand size for CVTPS2PD * target/i386: Add support for AMX-COMPLEX in CPUID enumeration * compile plugins on Darwin * configure and meson cleanups * drop mkvenv support for Python 3.7 and Debian10 * add wrap file for libblkio * tweak KVM stubs # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmT5t6UUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroMmjwf+MpvVuq+nn+3PqGUXgnzJx5ccA5ne # O9Xy8+1GdlQPzBw/tPovxXDSKn3HQtBfxObn2CCE1tu/4uHWpBA1Vksn++NHdUf2 # P0yoHxGskJu5iYYTtIcNw5cH2i+AizdiXuEjhfNjqD5Y234cFoHnUApt9e3zBvVO # cwGD7WpPuSb4g38hHkV6nKcx72o7b4ejDToqUVZJ2N+RkddSqB03fSdrOru0hR7x # V+lay0DYdFszNDFm05LJzfDbcrHuSryGA91wtty7Fzj6QhR/HBHQCUZJxMB5PI7F # Zy4Zdpu60zxtSxUqeKgIi7UhNFgMcax2Hf9QEqdc/B4ARoBbboh4q4u8kQ== # =dH7/ # -----END PGP SIGNATURE----- # gpg: Signature made Thu 07 Sep 2023 07:44:37 EDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (51 commits) docs/system/replay: do not show removed command line option subprojects: add wrap file for libblkio sysemu/kvm: Restrict kvm_pc_setup_irq_routing() to x86 targets sysemu/kvm: Restrict kvm_has_pit_state2() to x86 targets sysemu/kvm: Restrict kvm_get_apic_state() to x86 targets sysemu/kvm: Restrict kvm_arch_get_supported_cpuid/msr() to x86 targets target/i386: Restrict declarations specific to CONFIG_KVM target/i386: Allow elision of kvm_hv_vpindex_settable() target/i386: Allow elision of kvm_enable_x2apic() target/i386: Remove unused KVM stubs target/i386/cpu-sysemu: Inline kvm_apic_in_kernel() target/i386/helper: Restrict KVM declarations to system emulation hw/i386/fw_cfg: Include missing 'cpu.h' header hw/i386/pc: Include missing 'cpu.h' header hw/i386/pc: Include missing 'sysemu/tcg.h' header Revert "mkvenv: work around broken pip installations on Debian 10" mkvenv: assume presence of importlib.metadata Python: Drop support for Python 3.7 configure: remove dead code meson: list leftover CONFIG_* symbols ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
03a3a62fbd
64 changed files with 551 additions and 775 deletions
|
@ -6,11 +6,11 @@
|
|||
# programs that the main configure has already done for us.
|
||||
#
|
||||
|
||||
BUILD_DIR := $(CURDIR)/../..
|
||||
include config-host.mak
|
||||
|
||||
include $(BUILD_DIR)/config-host.mak
|
||||
TOP_SRC_PATH = $(SRC_PATH)/../..
|
||||
|
||||
VPATH += $(SRC_PATH)/contrib/plugins
|
||||
VPATH += $(SRC_PATH)
|
||||
|
||||
NAMES :=
|
||||
NAMES += execlog
|
||||
|
@ -26,21 +26,25 @@ SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
|
|||
|
||||
# The main QEMU uses Glib extensively so it's perfectly fine to use it
|
||||
# in plugins (which many example do).
|
||||
CFLAGS := $(shell $(PKG_CONFIG) --cflags glib-2.0)
|
||||
CFLAGS += -fPIC -Wall
|
||||
CFLAGS += $(if $(CONFIG_DEBUG_TCG), -ggdb -O0)
|
||||
CFLAGS += -I$(SRC_PATH)/include/qemu
|
||||
PLUGIN_CFLAGS := $(shell $(PKG_CONFIG) --cflags glib-2.0)
|
||||
PLUGIN_CFLAGS += -fPIC -Wall
|
||||
PLUGIN_CFLAGS += -I$(TOP_SRC_PATH)/include/qemu
|
||||
|
||||
all: $(SONAMES)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
$(CC) $(CFLAGS) $(PLUGIN_CFLAGS) -c -o $@ $<
|
||||
|
||||
lib%.so: %.o
|
||||
$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
|
||||
ifeq ($(CONFIG_DARWIN),y)
|
||||
$(CC) -bundle -Wl,-undefined,dynamic_lookup -o $@ $^ $(LDLIBS)
|
||||
else
|
||||
$(CC) -shared -o $@ $^ $(LDLIBS)
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f *.o *.so *.d
|
||||
rm -Rf .libs
|
||||
|
||||
.PHONY: all clean
|
||||
.SECONDARY:
|
||||
|
|
|
@ -545,8 +545,8 @@ static void append_stats_line(GString *line, uint64_t l1_daccess,
|
|||
l1_dmiss_rate = ((double) l1_dmisses) / (l1_daccess) * 100.0;
|
||||
l1_imiss_rate = ((double) l1_imisses) / (l1_iaccess) * 100.0;
|
||||
|
||||
g_string_append_printf(line, "%-14lu %-12lu %9.4lf%% %-14lu %-12lu"
|
||||
" %9.4lf%%",
|
||||
g_string_append_printf(line, "%-14" PRIu64 " %-12" PRIu64 " %9.4lf%%"
|
||||
" %-14" PRIu64 " %-12" PRIu64 " %9.4lf%%",
|
||||
l1_daccess,
|
||||
l1_dmisses,
|
||||
l1_daccess ? l1_dmiss_rate : 0.0,
|
||||
|
@ -556,7 +556,8 @@ static void append_stats_line(GString *line, uint64_t l1_daccess,
|
|||
|
||||
if (use_l2) {
|
||||
l2_miss_rate = ((double) l2_misses) / (l2_access) * 100.0;
|
||||
g_string_append_printf(line, " %-12lu %-11lu %10.4lf%%",
|
||||
g_string_append_printf(line,
|
||||
" %-12" PRIu64 " %-11" PRIu64 " %10.4lf%%",
|
||||
l2_access,
|
||||
l2_misses,
|
||||
l2_access ? l2_miss_rate : 0.0);
|
||||
|
@ -662,8 +663,8 @@ static void log_top_insns(void)
|
|||
if (insn->symbol) {
|
||||
g_string_append_printf(rep, " (%s)", insn->symbol);
|
||||
}
|
||||
g_string_append_printf(rep, ", %ld, %s\n", insn->l1_dmisses,
|
||||
insn->disas_str);
|
||||
g_string_append_printf(rep, ", %" PRId64 ", %s\n",
|
||||
insn->l1_dmisses, insn->disas_str);
|
||||
}
|
||||
|
||||
miss_insns = g_list_sort(miss_insns, icmp);
|
||||
|
@ -675,8 +676,8 @@ static void log_top_insns(void)
|
|||
if (insn->symbol) {
|
||||
g_string_append_printf(rep, " (%s)", insn->symbol);
|
||||
}
|
||||
g_string_append_printf(rep, ", %ld, %s\n", insn->l1_imisses,
|
||||
insn->disas_str);
|
||||
g_string_append_printf(rep, ", %" PRId64 ", %s\n",
|
||||
insn->l1_imisses, insn->disas_str);
|
||||
}
|
||||
|
||||
if (!use_l2) {
|
||||
|
@ -692,8 +693,8 @@ static void log_top_insns(void)
|
|||
if (insn->symbol) {
|
||||
g_string_append_printf(rep, " (%s)", insn->symbol);
|
||||
}
|
||||
g_string_append_printf(rep, ", %ld, %s\n", insn->l2_misses,
|
||||
insn->disas_str);
|
||||
g_string_append_printf(rep, ", %" PRId64 ", %s\n",
|
||||
insn->l2_misses, insn->disas_str);
|
||||
}
|
||||
|
||||
finish:
|
||||
|
|
|
@ -48,7 +48,7 @@ static void printf_header(unsigned long count)
|
|||
uint64_t start_code = qemu_plugin_start_code();
|
||||
uint64_t end_code = qemu_plugin_end_code();
|
||||
uint64_t entry = qemu_plugin_entry_code();
|
||||
fprintf(fp, "0, 0x%lx, 0x%lx, 0x%lx, %s\n",
|
||||
fprintf(fp, "0, 0x%" PRIx64 ", 0x%" PRIx64 ", 0x%" PRIx64 ", %s\n",
|
||||
start_code, end_code, entry, path);
|
||||
fprintf(fp, "BB Table: %ld bbs\n", count);
|
||||
}
|
||||
|
|
|
@ -181,7 +181,8 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
|
|||
switch (class->what) {
|
||||
case COUNT_CLASS:
|
||||
if (class->count || verbose) {
|
||||
g_string_append_printf(report, "Class: %-24s\t(%ld hits)\n",
|
||||
g_string_append_printf(report,
|
||||
"Class: %-24s\t(%" PRId64 " hits)\n",
|
||||
class->class,
|
||||
class->count);
|
||||
}
|
||||
|
@ -208,7 +209,8 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
|
|||
i++, counts = g_list_next(counts)) {
|
||||
InsnExecCount *rec = (InsnExecCount *) counts->data;
|
||||
g_string_append_printf(report,
|
||||
"Instr: %-24s\t(%ld hits)\t(op=0x%08x/%s)\n",
|
||||
"Instr: %-24s\t(%" PRId64 " hits)"
|
||||
"\t(op=0x%08x/%s)\n",
|
||||
rec->insn,
|
||||
rec->count,
|
||||
rec->opcode,
|
||||
|
|
|
@ -134,7 +134,9 @@ static void report_divergance(ExecState *us, ExecState *them)
|
|||
|
||||
/* Output short log entry of going out of sync... */
|
||||
if (verbose || divrec.distance == 1 || diverged) {
|
||||
g_string_printf(out, "@ 0x%016lx vs 0x%016lx (%d/%d since last)\n",
|
||||
g_string_printf(out,
|
||||
"@ 0x%016" PRIx64 " vs 0x%016" PRIx64
|
||||
" (%d/%d since last)\n",
|
||||
us->pc, them->pc, g_slist_length(divergence_log),
|
||||
divrec.distance);
|
||||
qemu_plugin_outs(out->str);
|
||||
|
@ -144,7 +146,9 @@ static void report_divergance(ExecState *us, ExecState *them)
|
|||
int i;
|
||||
GSList *entry;
|
||||
|
||||
g_string_printf(out, "Δ insn_count @ 0x%016lx (%ld) vs 0x%016lx (%ld)\n",
|
||||
g_string_printf(out,
|
||||
"Δ insn_count @ 0x%016" PRIx64
|
||||
" (%ld) vs 0x%016" PRIx64 " (%ld)\n",
|
||||
us->pc, us->insn_count, them->pc, them->insn_count);
|
||||
|
||||
for (entry = log, i = 0;
|
||||
|
@ -152,7 +156,8 @@ static void report_divergance(ExecState *us, ExecState *them)
|
|||
entry = g_slist_next(entry), i++) {
|
||||
ExecInfo *prev = (ExecInfo *) entry->data;
|
||||
g_string_append_printf(out,
|
||||
" previously @ 0x%016lx/%ld (%ld insns)\n",
|
||||
" previously @ 0x%016" PRIx64 "/%" PRId64
|
||||
" (%ld insns)\n",
|
||||
prev->block->pc, prev->block->insns,
|
||||
prev->insn_count);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue