unicorn/qemu
Pavel Fedin 825bc2fb04
qom: Replace object property list with GHashTable
ARM GICv3 systems with large number of CPUs create lots of IRQ pins. Since
every pin is represented as a property, number of these properties becomes
very large. Every property add first makes sure there's no duplicates.
Traversing the list becomes very slow, therefore QEMU initialization takes
significant time (several seconds for e. g. 16 CPUs).

This patch replaces list with GHashTable, making lookup very fast. The only
drawback is that object_child_foreach() and object_child_foreach_recursive()
cannot add or remove properties during traversal, since GHashTableIter does
not have modify-safe version. However, the code seems not to modify objects
via these functions.

Backports commit b604a854e843505007c59d68112c654556102a20 from qemu
2018-02-21 13:35:10 -05:00
..
crypto
default-configs
docs
fpu softfloat: Remove lingering fast casts 2018-02-20 19:04:22 -05:00
hw
include qom: Replace object property list with GHashTable 2018-02-21 13:35:10 -05:00
qapi qapi: Don't box branches of flat unions 2018-02-20 16:44:55 -05:00
qobject qapi: Convert QType into QAPI built-in enum type 2018-02-19 21:47:05 -05:00
qom qom: Replace object property list with GHashTable 2018-02-21 13:35:10 -05:00
scripts qapi: Don't box branches of flat unions 2018-02-20 16:44:55 -05:00
target-arm target-arm: Only trap SRS from S-EL1 if specified mode is MON 2018-02-21 02:49:28 -05:00
target-i386 tcg: Make cpu_tmp1 and cpu_tmp4 a TCGv 2018-02-21 00:07:23 -05:00
target-m68k tcg: Make store_dummy a TCGv 2018-02-21 00:24:40 -05:00
target-mips tcg: Make cpu_gpr a TCGv array 2018-02-21 01:02:46 -05:00
target-sparc tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
tcg tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
util error: New error_fatal 2018-02-20 08:22:27 -05:00
aarch64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
aarch64eb.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
accel.c
arm.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
armeb.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
CODING_STYLE
configure
COPYING
COPYING.LIB
cpu-exec-common.c
cpu-exec.c
cpus.c
cputlb.c memory: Drop MemoryRegion.ram_addr 2018-02-21 08:53:08 -05:00
exec.c exec: Remove unnecessary return in qemu_ram_remap 2018-02-21 09:51:23 -05:00
gen_all_header.sh
glib_compat.c glib_compat: backport hashtable iterator interfaces 2018-02-21 13:18:44 -05:00
HACKING
header_gen.py memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
ioport.c
LICENSE
m68k.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
Makefile qapi: Turn generators' mandatory option -i into an argument 2018-02-19 15:22:27 -05:00
Makefile.objs
Makefile.target
memory_mapping.c
memory.c memory: Fix bad error handling in memory_region_init_ram_ptr() 2018-02-21 11:24:38 -05:00
mips64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mips64el.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mips.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mipsel.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
powerpc.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -05:00
qemu-log.c
qemu-timer.c
rules.mak
softmmu_template.h
sparc64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
sparc.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
tcg-runtime.c
translate-all.c
translate-all.h
translate-common.c
unicorn_common.h
VERSION
vl.c
vl.h
x86_64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00