qemu/hw/i386
Igor Mammedov dbb6da8ba7 pc: acpi: revert back to 1 SRAT entry for hotpluggable area
Commit
  10efd7e108 "pc: acpi: fix memory hotplug regression by reducing stub SRAT entry size"
attemped to fix hotplug regression introduced by
  848a1cc1e "hw/acpi-build: build SRAT memory affinity structures for DIMM devices"

fixed issue for Windows/3.0+ linux kernels, however it regressed 2.6 based
kernels (RHEL6) to the point where guest might crash at boot.
Reason is that 2.6 kernel discards SRAT table due too small last entry
which down the road leads to crashes. Hack I've tried in 10efd7e108 is also
not ACPI spec compliant according to which whole possible RAM should be
described in SRAT. Revert 10efd7e108 to fix regression for 2.6 based kernels.

With 10efd7e108 reverted, I've also tried splitting SRAT table statically
in different ways %/node and %/slot but Windows still fails to online
2nd pc-dimm hot-plugged into node 0 (as described in 10efd7e108) and
sometimes even coldplugged pc-dimms where affected with static SRAT
partitioning.
The only known so far way where Windows stays happy is when we have 1
SRAT entry in the last node covering all hotplug area.

Revert 848a1cc1e until we come up with a way to avoid regression
on Windows with hotplug area split in several entries.
Tested this with 2.6/3.0 based kernels (RHEL6/7) and WS20[08/12/12R2/16]).

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2018-09-07 17:05:18 -04:00
..
kvm hmp: obsolete "info ioapic" 2018-06-28 19:05:37 +02:00
xen hw/xen: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
acpi-build.c pc: acpi: revert back to 1 SRAT entry for hotpluggable area 2018-09-07 17:05:18 -04: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 iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
amd_iommu.h hw/i386: Fix AMDVI GATS and HATS encodings 2018-06-26 21:58:03 +03:00
intel_iommu_internal.h intel-iommu: Extend address width to 48 bits 2018-01-18 21:52:38 +02:00
intel_iommu.c intel-iommu: replace more vtd_err_* traces 2018-08-27 15:09:20 +02:00
kvmvapic.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw/i386: make IOMMUs configurable via default-configs/ 2018-03-12 16:12:46 +01:00
multiboot.c i386: only parse the initrd_filename once for multiboot modules 2018-07-17 16:24:50 +02:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc_piix.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc_q35.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc_sysfw.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc.c pc-dimm: assign and verify the "addr" property during pre_plug 2018-08-23 18:46:25 +02:00
trace-events intel-iommu: replace more vtd_err_* traces 2018-08-27 15:09:20 +02: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: check if machine has PCI bus 2018-01-18 21:52:38 +02:00