qemu/target/s390x
David Hildenbrand 82fab5c5b9 s390x/sclp: remove memory hotplug support
From an architecture point of view, nothing can be mapped into the address
space on s390x. All there is is memory. Therefore there is also not really
an interface to communicate such information to the guest. All we can do is
specify the maximum ram address and guests can probe in that range if
memory is available and usable (TPROT).

Also memory hotplug is strange. The guest can decide at some point in
time to add / remove memory in some range. While the hypervisor can deny
to online an increment, all increments have to be predefined and there is
no way of telling the guest about a newly "hotplugged" increment. So if we
specify right now e.g.
    -m 2G,slots=2,maxmem=20G
An ordinary fedora guest will happily online (hotplug) all memory,
resulting in a guest consuming 20G. So it really behaves rather like
    -m 22G
There is no way to hotplug memory from the outside like on other
architectures. This is of course bad for upper management layers.

As the guest can create/delete memory regions while it is running, of
course migration support is not available and tricky to implement.

With virtualization, it is different. We might want to map something
into guest address space (e.g. fake DAX devices) and not detect it
automatically as memory. So we really want to use the maxmem and slots
parameter just like on all other architectures. Such devices will have
to expose the applicable memory range themselves. To finally be able to
provide memory hotplug to guests, we will need a new paravirtualized
interface to do that (e.g. something into the direction of virtio-mem).

This implies, that maxmem cannot be used for s390x memory hotplug
anymore and has to go. This simplifies the code quite a bit.

As migration support is not working, this change cannot really break
migration as guests without slots and maxmem don't see the SCLP
features. Also, the ram size calculation does not change.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180219174231.10874-1-david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
[CH: tweaked patch description, as discussed on list]
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-02-26 12:55:26 +01:00
..
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c s390x/tcg: use s390_program_interrupt() in SACF 2017-12-14 17:56:54 +01:00
cpu_features_def.h s390x/cpumodel: model PTFF subfunctions for Multiple-epoch facility 2018-02-09 09:37:13 +01:00
cpu_features.c s390x/cpumodel: document S390FeatDef.bit not applicable 2018-02-26 12:55:26 +01:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_models.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c qmp: expose s390-specific CPU info 2018-02-26 12:55:26 +01:00
cpu.h s390x/sclp: remove memory hotplug support 2018-02-26 12:55:26 +01:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c s390x/diag: pass the retaddr into handle_diag_308() 2017-12-14 17:56:54 +01:00
excp_helper.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
fpu_helper.c target/*/cpu.h: remove softfloat.h 2018-02-21 10:20:24 +00:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
helper.c s390x/cpu: expose the guest crash information 2018-02-26 12:55:26 +01:00
helper.h s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +01:00
insn-data.def s390x/tcg: add various alignment checks 2018-02-26 12:55:26 +01:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
internal.h s390x/flic: optimize CPU wakeup for TCG 2018-02-09 09:37:13 +01:00
interrupt.c s390x/flic: cache the common flic class in a central function 2018-02-09 09:37:13 +01:00
ioinst.c s390x: handle exceptions during s390_cpu_virt_mem_rw() correctly (TCG) 2017-12-14 17:56:54 +01:00
kvm_s390x.h s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm-stub.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm.c qmp: expose s390-specific CPU info 2018-02-26 12:55:26 +01:00
machine.c s390x/kvm: Handle bpb feature 2018-01-22 11:22:30 +01:00
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
mem_helper.c s390x/tcg: add various alignment checks 2018-02-26 12:55:26 +01:00
misc_helper.c s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +01:00
mmu_helper.c s390x/tcg: fix disabling/enabling DAT 2018-02-26 12:55:26 +01:00
sigp.c qmp: expose s390-specific CPU info 2018-02-26 12:55:26 +01:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: add various alignment checks 2018-02-26 12:55:26 +01:00