unicorn/qemu/include/exec
Alexey Kardashevskiy b90333a531
memory: Share special empty FlatView
This shares an cached empty FlatView among address spaces. The empty
FV is used every time when a root MR renders into a FV without memory
sections which happens when MR or its children are not enabled or
zero-sized. The empty_view is not NULL to keep the rest of memory
API intact; it also has a dispatch tree for the same reason.

On POWER8 with 255 CPUs, 255 virtio-net, 40 PCI bridges guest this halves
the amount of FlatView's in use (557 -> 260) and dispatch tables
(~800000 -> ~370000). In an unrelated experiment with 112 non-virtio
devices on x86 ("-M pc"), only 4 FlatViews are alive, and about ~2000
are created at startup.

Backports commit 092aa2fc65b7a35121616aad8f39d47b8f921618 from qemu
2018-03-11 22:34:28 -04:00
..
address-spaces.h
cpu_ldst_template.h
cpu_ldst.h
cpu-all.h
cpu-common.h
cpu-defs.h tcg: add CONFIG_TCG guards in headers 2018-03-03 21:37:52 -05:00
cputlb.h
exec-all.h memory: Move AddressSpaceDispatch from AddressSpace to FlatView 2018-03-11 20:40:24 -04:00
gen-icount.h tcg: Dynamically allocate TCGOps 2018-03-05 16:34:40 -05:00
helper-gen.h tcg: Introduce tcgv_{i32,i64,ptr}_{arg,temp} 2018-03-05 08:46:12 -05:00
helper-head.h include/exec/helper-head.h: support f16 in helper calls 2018-03-08 12:28:05 -05:00
helper-proto.h
helper-tcg.h tcg: Expand glue macros before stringifying helper names 2018-03-03 23:07:21 -05:00
hwaddr.h
ioport.h
memattrs.h memory.h: Move MemTxResult type to memattrs.h 2018-03-04 13:10:47 -05:00
memory-internal.h memory: Rename mem_begin/mem_commit/mem_add helpers 2018-03-11 21:36:50 -04:00
memory.h memory: Share special empty FlatView 2018-03-11 22:34:28 -04:00
ram_addr.h
ramlist.h
semihost.h
tb-context.h
tb-hash-xx.h
tb-hash.h
tb-lookup.h exec-all: bring tb->invalid into tb->cflags 2018-03-05 02:46:21 -05:00
translator.h tcg: Add generic translation framework 2018-03-04 14:31:16 -05:00