mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
s390x/kvm: enable/reset cmma via vm attributes
Exploit the new api for userspace-controlled cmma. If supported, enable cmma during kvm initialization and register a reset handler for cmma, which is also called directly from the load IPL code. The reset functionality is needed to reset the cmma state of the guest pages, e.g. if a system reset is triggered via qemu monitor; otherwise this could result in data corruption. A guest triggered reboot may now lead to multiple cmma resets; this is OK, however, as this is slowpath anyway and the simplest way to achieve the intended effects. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
08da527fd0
commit
4cb88c3c37
4 changed files with 76 additions and 0 deletions
|
@ -136,6 +136,7 @@ static int modified_clear_reset(S390CPU *cpu)
|
|||
pause_all_vcpus();
|
||||
cpu_synchronize_all_states();
|
||||
cpu_full_reset_all();
|
||||
cmma_reset(cpu);
|
||||
io_subsystem_reset();
|
||||
scc->load_normal(CPU(cpu));
|
||||
cpu_synchronize_all_post_reset();
|
||||
|
@ -150,6 +151,7 @@ static int load_normal_reset(S390CPU *cpu)
|
|||
pause_all_vcpus();
|
||||
cpu_synchronize_all_states();
|
||||
cpu_reset_all();
|
||||
cmma_reset(cpu);
|
||||
io_subsystem_reset();
|
||||
scc->initial_cpu_reset(CPU(cpu));
|
||||
scc->load_normal(CPU(cpu));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue