qemu-e2k/hw/i386
Peter Xu 4b519ef1de intel-iommu: optimize nodmar memory regions
Previously we have per-device system memory aliases when DMAR is
disabled by the system.  It will slow the system down if there are
lots of devices especially when DMAR is disabled, because each of the
aliased system address space will contain O(N) slots, and rendering
such N address spaces will be O(N^2) complexity.

This patch introduces a shared nodmar memory region and for each
device we only create an alias to the shared memory region.  With the
aliasing, QEMU memory core API will be able to detect when devices are
sharing the same address space (which is the nodmar address space)
when rendering the FlatViews and the total number of FlatViews can be
dramatically reduced when there are a lot of devices.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20190313094323.18263-1-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-03-20 11:44:13 +01:00
..
kvm ioapic: use TYPE_FOO MACRO than constant string 2019-01-09 11:33:47 +01:00
xen xen: introduce new 'XenBus' and 'XenDevice' object hierarchy 2019-01-14 13:45:40 +00:00
Kconfig hw/i386/Kconfig: enable devices that can be created by default 2019-03-20 11:44:13 +01:00
Makefile.objs i386: express dependencies with Kconfig 2019-03-07 21:45:53 +01:00
acpi-build.c machine: Move nvdimms state into struct MachineState 2019-03-11 10:44:25 -03:00
acpi-build.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
amd_iommu.c update copyright notice 2019-03-11 16:33:49 +01:00
amd_iommu.h update copyright notice 2019-03-11 16:33:49 +01:00
intel_iommu.c intel-iommu: optimize nodmar memory regions 2019-03-20 11:44:13 +01:00
intel_iommu_internal.h intel_iommu: add scalable-mode option to make scalable mode work 2019-03-12 22:31:21 -04:00
kvmvapic.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
multiboot.c elf: Add optional function ptr to load_elf() to parse ELF notes 2019-02-05 16:50:16 +01:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc.c i386, acpi: check acpi_memory_hotplug capacity in pre_plug 2019-03-12 22:31:21 -04:00
pc_piix.c machine: Move nvdimms state into struct MachineState 2019-03-11 10:44:25 -03:00
pc_q35.c machine: Move nvdimms state into struct MachineState 2019-03-11 10:44:25 -03:00
pc_sysfw.c pc: Support firmware configuration with -blockdev 2019-03-11 22:54:26 +01:00
trace-events intel_iommu: scalable mode emulation 2019-03-12 22:31:21 -04:00
vmmouse.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
vmport.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
x86-iommu.c x86-iommu: turn on IR by default if proper 2018-12-20 13:25:11 -05:00