Skip to content
  • Christian Borntraeger's avatar
    5c30ef93
    vl/s390x: fixup ram sizes for compat machines · 5c30ef93
    Christian Borntraeger authored
    
    
    Older QEMU versions did fixup the ram size to match what can be reported
    via sclp. We need to mimic this behaviour for machine types 4.2 and
    older to not fail on inbound migration for memory sizes that do not fit.
    Old machines with proper aligned memory sizes are not affected.
    
    Alignment table:
     VM size (<=) | Alignment
    --------------------------
          1020M   |     1M
          2040M   |     2M
          4080M   |     4M
          8160M   |     8M
         16320M   |    16M
         32640M   |    32M
         65280M   |    64M
        130560M   |   128M
        261120M   |   256M
        522240M   |   512M
       1044480M   |     1G
       2088960M   |     2G
       4177920M   |     4G
       8355840M   |     8G
    
    Suggested action is to replace unaligned -m value with a suitable
    aligned one or if a change to a newer machine type is possible, use a
    machine version >= 5.0.
    
    A future version might remove the compatibility handling.
    
    For machine types >= 5.0 we can simply use an increment size of 1M and
    use the full range of increment number which allows for all possible
    memory sizes. The old limitation of having a maximum of 1020 increments
    was added for standby memory, which we no longer support. With that we
    can now support even weird memory sizes like 10001234 MB.
    
    As we no longer fixup maxram_size as well, make other users use ram_size
    instead. Keep using maxram_size when setting the maximum ram size in KVM,
    as that will come in handy in the future when supporting memory hotplug
    (in contrast, storage keys and storage attributes for hotplugged memory
    will have to be migrated per RAM block in the future).
    
    Fixes: 3a12fc61 ("390x/s390-virtio-ccw: use memdev for RAM")
    Reported-by: default avatarLukáš Doktor <ldoktor@redhat.com>
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Acked-by: default avatarIgor Mammedov <imammedo@redhat.com>
    Cc: Igor Mammedov <imammedo@redhat.com>
    Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Message-Id: <20200401123754.109602-1-borntraeger@de.ibm.com>
    [CH: fixed up message on memory size fixup]
    Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
    5c30ef93
    vl/s390x: fixup ram sizes for compat machines
    Christian Borntraeger authored
    
    
    Older QEMU versions did fixup the ram size to match what can be reported
    via sclp. We need to mimic this behaviour for machine types 4.2 and
    older to not fail on inbound migration for memory sizes that do not fit.
    Old machines with proper aligned memory sizes are not affected.
    
    Alignment table:
     VM size (<=) | Alignment
    --------------------------
          1020M   |     1M
          2040M   |     2M
          4080M   |     4M
          8160M   |     8M
         16320M   |    16M
         32640M   |    32M
         65280M   |    64M
        130560M   |   128M
        261120M   |   256M
        522240M   |   512M
       1044480M   |     1G
       2088960M   |     2G
       4177920M   |     4G
       8355840M   |     8G
    
    Suggested action is to replace unaligned -m value with a suitable
    aligned one or if a change to a newer machine type is possible, use a
    machine version >= 5.0.
    
    A future version might remove the compatibility handling.
    
    For machine types >= 5.0 we can simply use an increment size of 1M and
    use the full range of increment number which allows for all possible
    memory sizes. The old limitation of having a maximum of 1020 increments
    was added for standby memory, which we no longer support. With that we
    can now support even weird memory sizes like 10001234 MB.
    
    As we no longer fixup maxram_size as well, make other users use ram_size
    instead. Keep using maxram_size when setting the maximum ram size in KVM,
    as that will come in handy in the future when supporting memory hotplug
    (in contrast, storage keys and storage attributes for hotplugged memory
    will have to be migrated per RAM block in the future).
    
    Fixes: 3a12fc61 ("390x/s390-virtio-ccw: use memdev for RAM")
    Reported-by: default avatarLukáš Doktor <ldoktor@redhat.com>
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Acked-by: default avatarIgor Mammedov <imammedo@redhat.com>
    Cc: Igor Mammedov <imammedo@redhat.com>
    Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Message-Id: <20200401123754.109602-1-borntraeger@de.ibm.com>
    [CH: fixed up message on memory size fixup]
    Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
Loading