powerpc/pseries/vas: Add VAS migration handler
authorHaren Myneni <haren@linux.ibm.com>
Wed, 2 Mar 2022 08:51:58 +0000 (00:51 -0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 7 Mar 2022 13:04:56 +0000 (00:04 +1100)
commit37e6764895ef7431f45ff603a548549d409993d2
treea44d0a07f1b400a66054d3f6741ee3ca5b89e7d5
parent716d7a2e3764cb79061371767bff1a691adb4e7f
powerpc/pseries/vas: Add VAS migration handler

Since the VAS windows belong to the VAS hardware resource, the
hypervisor expects the partition to close them on source partition
and reopen them after the partition migrated on the destination
machine.

This handler is called before pseries_suspend() to close these
windows and again invoked after migration. All active windows
for both default and QoS types will be closed and mark them
inactive and reopened after migration with this handler.
During the migration, the user space receives paste instruction
failure if it issues copy/paste on these inactive windows.

The current migration implementation does not freeze the user
space and applications can continue to open VAS windows while
migration is in progress. So when the migration_in_progress flag
is set, VAS open window API returns -EBUSY.

Signed-off-by: Haren Myneni <haren@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/05e45ff4f8babd2490ccb7ae923884f4aa21a7e5.camel@linux.ibm.com
arch/powerpc/platforms/pseries/mobility.c
arch/powerpc/platforms/pseries/vas.c
arch/powerpc/platforms/pseries/vas.h