aboutsummaryrefslogtreecommitdiff
path: root/hw/intc/gic_internal.h
diff options
context:
space:
mode:
authorAni Sinha <ani@anisinha.ca>2022-02-23 20:03:21 +0530
committerMichael S. Tsirkin <mst@redhat.com>2022-03-04 08:30:52 -0500
commita379d4550c4a949bb1ca51bc5272d68b4a619b18 (patch)
tree0b4d9411e08eb1c4f9d600485b4cf8f7dedb8232 /hw/intc/gic_internal.h
parent3818acf56480ae07f8801f9255b82fe587ef39c1 (diff)
downloadqemu-a379d4550c4a949bb1ca51bc5272d68b4a619b18.zip
qemu-a379d4550c4a949bb1ca51bc5272d68b4a619b18.tar.gz
qemu-a379d4550c4a949bb1ca51bc5272d68b4a619b18.tar.bz2
hw/smbios: fix overlapping table handle numbers with large memory vms
The current smbios table implementation splits the main memory in 16 GiB (DIMM like) chunks. With the current smbios table assignment code, we can have only 512 such chunks before the 16 bit handle numbers in the header for tables 17 and 19 conflict. A guest with more than 8 TiB of memory will hit this limitation and would fail with the following assertion in isa-debugcon: ASSERT_EFI_ERROR (Status = Already started) ASSERT /builddir/build/BUILD/edk2-ca407c7246bf/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c(125): !EFI_ERROR (Status) This change adds an additional offset between tables 17 and 19 handle numbers when configuring VMs larger than 8 TiB of memory. The value of the offset is calculated to be equal to the additional space required to be reserved in order to accomodate more DIMM entries without the table handles colliding. In normal cases where the VM memory is smaller or equal to 8 TiB, this offset value is 0. Hence in this case, no additional handle numbers are reserved and table handle values remain as before. Since smbios memory is not transmitted over the wire during migration, this change can break migration for large memory vms if the guest is in the middle of generating the tables during migration. However, in those situations, qemu generates invalid table handles anyway with or without this fix. Hence, we do not preserve the old bug by introducing compat knobs/machine types. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2023977 Signed-off-by: Ani Sinha <ani@anisinha.ca> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20220223143322.927136-7-ani@anisinha.ca> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/intc/gic_internal.h')
0 files changed, 0 insertions, 0 deletions