diff mbox

[RFC,v4,20/20] migration: disable save/restore and migration when SEV is active

Message ID 148900648332.27090.14562192041474683540.stgit@brijesh-build-machine (mailing list archive)
State New, archived
Headers show

Commit Message

Brijesh Singh March 8, 2017, 8:54 p.m. UTC
Snapshot, Restore and Migration is not implemented yet. Return error when
user tries to perform any of these operations.

Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
 migration/migration.c |    7 +++++++
 migration/savevm.c    |   11 +++++++++++
 2 files changed, 18 insertions(+)

Comments

Eduardo Habkost March 8, 2017, 9:32 p.m. UTC | #1
On Wed, Mar 08, 2017 at 03:54:43PM -0500, Brijesh Singh wrote:
> Snapshot, Restore and Migration is not implemented yet. Return error when
> user tries to perform any of these operations.
> 
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
>  migration/migration.c |    7 +++++++
>  migration/savevm.c    |   11 +++++++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/migration/migration.c b/migration/migration.c
> index 3dab684..287c72b 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -37,6 +37,7 @@
>  #include "io/channel-buffer.h"
>  #include "io/channel-tls.h"
>  #include "migration/colo.h"
> +#include "sysemu/sev.h"
>  
>  #define MAX_THROTTLE  (32 << 20)      /* Migration transfer speed throttling */
>  
> @@ -1221,6 +1222,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
>          error_setg(errp, QERR_MIGRATION_ACTIVE);
>          return;
>      }
> +
> +    if (sev_enabled()) {
> +        error_setg(errp, "Migration is not implemented");
> +        return;
> +    }
> +

You can do this more easily by registering a migration blocker
using migrate_add_blocker() when initializing SEV.
Brijesh Singh March 8, 2017, 9:40 p.m. UTC | #2
On 03/08/2017 03:32 PM, Eduardo Habkost wrote:
> On Wed, Mar 08, 2017 at 03:54:43PM -0500, Brijesh Singh wrote:
>> Snapshot, Restore and Migration is not implemented yet. Return error when
>> user tries to perform any of these operations.
>>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>>  migration/migration.c |    7 +++++++
>>  migration/savevm.c    |   11 +++++++++++
>>  2 files changed, 18 insertions(+)
>>
>> diff --git a/migration/migration.c b/migration/migration.c
>> index 3dab684..287c72b 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -37,6 +37,7 @@
>>  #include "io/channel-buffer.h"
>>  #include "io/channel-tls.h"
>>  #include "migration/colo.h"
>> +#include "sysemu/sev.h"
>>
>>  #define MAX_THROTTLE  (32 << 20)      /* Migration transfer speed throttling */
>>
>> @@ -1221,6 +1222,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
>>          error_setg(errp, QERR_MIGRATION_ACTIVE);
>>          return;
>>      }
>> +
>> +    if (sev_enabled()) {
>> +        error_setg(errp, "Migration is not implemented");
>> +        return;
>> +    }
>> +
>
> You can do this more easily by registering a migration blocker
> using migrate_add_blocker() when initializing SEV.
>

Thanks for tip, I was not aware of migrate_add_blocker(), I will look at using in next rev.

-Brijesh
diff mbox

Patch

diff --git a/migration/migration.c b/migration/migration.c
index 3dab684..287c72b 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -37,6 +37,7 @@ 
 #include "io/channel-buffer.h"
 #include "io/channel-tls.h"
 #include "migration/colo.h"
+#include "sysemu/sev.h"
 
 #define MAX_THROTTLE  (32 << 20)      /* Migration transfer speed throttling */
 
@@ -1221,6 +1222,12 @@  void qmp_migrate(const char *uri, bool has_blk, bool blk,
         error_setg(errp, QERR_MIGRATION_ACTIVE);
         return;
     }
+
+    if (sev_enabled()) {
+        error_setg(errp, "Migration is not implemented");
+        return;
+    }
+
     if (runstate_check(RUN_STATE_INMIGRATE)) {
         error_setg(errp, "Guest is waiting for an incoming migration");
         return;
diff --git a/migration/savevm.c b/migration/savevm.c
index 3b19a4a..bf6e9b0 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -54,6 +54,7 @@ 
 #include "qemu/cutils.h"
 #include "io/channel-buffer.h"
 #include "io/channel-file.h"
+#include "sysemu/sev.h"
 
 #ifndef ETH_P_RARP
 #define ETH_P_RARP 0x8035
@@ -2084,6 +2085,11 @@  int save_vmstate(Monitor *mon, const char *name)
     Error *local_err = NULL;
     AioContext *aio_context;
 
+    if (sev_enabled()) {
+        monitor_printf(mon, "savevm is not implemented\n");
+        return -1;
+    }
+
     if (!bdrv_all_can_snapshot(&bs)) {
         monitor_printf(mon, "Device '%s' is writable but does not "
                        "support snapshots.\n", bdrv_get_device_name(bs));
@@ -2245,6 +2251,11 @@  int load_vmstate(const char *name)
     AioContext *aio_context;
     MigrationIncomingState *mis = migration_incoming_get_current();
 
+    if (sev_enabled()) {
+        error_report("loadvm is not implemented");
+        return -ENOTSUP;
+    }
+
     if (!bdrv_all_can_snapshot(&bs)) {
         error_report("Device '%s' is writable but does not support snapshots.",
                      bdrv_get_device_name(bs));