mirror of https://github.com/xemu-project/xemu.git
s390x/s390-virtio-ccw: don't crash on weird RAM sizes
KVM is not happy when starting a VM with weird RAM sizes: # qemu-system-s390x --enable-kvm --nographic -m 1234K qemu-system-s390x: kvm_set_user_memory_region: KVM_SET_USER_MEMORY_REGION failed, slot=0, start=0x0, size=0x244000: Invalid argument kvm_set_phys_mem: error registering slot: Invalid argument Aborted (core dumped) Let's handle that in a better way by rejecting such weird RAM sizes right from the start: # qemu-system-s390x --enable-kvm --nographic -m 1234K qemu-system-s390x: ram size must be multiples of 1 MiB Message-ID: <20241219144115.2820241-2-david@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Acked-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: David Hildenbrand <david@redhat.com> (cherry picked from commit 14e568ab4836347481af2e334009c385f456a734) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
19484ed99a
commit
9d913e012b
|
@ -180,6 +180,17 @@ static void s390_memory_init(MemoryRegion *ram)
|
|||
{
|
||||
MemoryRegion *sysmem = get_system_memory();
|
||||
|
||||
if (!QEMU_IS_ALIGNED(memory_region_size(ram), 1 * MiB)) {
|
||||
/*
|
||||
* SCLP cannot possibly expose smaller granularity right now and KVM
|
||||
* cannot handle smaller granularity. As we don't support NUMA, the
|
||||
* region size directly corresponds to machine->ram_size, and the region
|
||||
* is a single RAM memory region.
|
||||
*/
|
||||
error_report("ram size must be multiples of 1 MiB");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* allocate RAM for core */
|
||||
memory_region_add_subregion(sysmem, 0, ram);
|
||||
|
||||
|
|
Loading…
Reference in New Issue