On Mon, Mar 06, 2023 at 04:13:31PM +0100, Nico Boehr wrote: > Migration mode is a VM attribute which enables tracking of changes in > storage attributes (PGSTE). It assumes dirty tracking is enabled on all > memslots to keep a dirty bitmap of pages with changed storage attributes. > > When enabling migration mode, we currently check that dirty tracking is > enabled for all memslots. However, userspace can disable dirty tracking > without disabling migration mode. > > Since migration mode is pointless with dirty tracking disabled, disable > migration mode whenever userspace disables dirty tracking on any slot. > > Also update the documentation to clarify that dirty tracking must be > enabled when enabling migration mode, which is already enforced by the > code in kvm_s390_vm_start_migration(). > > Also highlight in the documentation for KVM_S390_GET_CMMA_BITS that it > can now fail with -EINVAL when dirty tracking is disabled while > migration mode is on. Move all the error codes to a table so this stays > readable. > > To disable migration mode, slots_lock should be held, which is taken > in kvm_set_memory_region() and thus held in > kvm_arch_prepare_memory_region(). > > Restructure the prepare code a bit so all the sanity checking is done > before disabling migration mode. This ensures migration mode isn't > disabled when some sanity check fails. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 190df4a212a7 ("KVM: s390: CMMA tracking, ESSA emulation, migration mode") > Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx> > Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20230127140532.230651-2-nrb@xxxxxxxxxxxxx > Message-Id: <20230127140532.230651-2-nrb@xxxxxxxxxxxxx> > [frankja@xxxxxxxxxxxxx: fixed commit message typo, moved api.rst error table upwards] > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > (cherry picked from commit f2d3155e2a6bac44d16f04415a321e8707d895c6) > Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx> Thanks, all backports now queued up. greg k-h