)]}'
{
  "commit": "b4e9ddccd1a64239c07d7229afd7e00eed5afcd8",
  "tree": "b3494deeace2730b48ba2e4b555bcf54f08e8b97",
  "parents": [
    "d3c86c99f36ac37a92dd40191b9571c0d12d415a"
  ],
  "author": {
    "name": "Steve Sistare",
    "email": "steven.sistare@oracle.com",
    "time": "Wed Jan 03 12:05:35 2024 -0800"
  },
  "committer": {
    "name": "Peter Xu",
    "email": "peterx@redhat.com",
    "time": "Thu Jan 04 09:52:42 2024 +0800"
  },
  "message": "migration: preserve suspended runstate\n\nA guest that is migrated in the suspended state automaticaly wakes and\ncontinues execution.  This is wrong; the guest should end migration in\nthe same state it started.  The root cause is that the outgoing migration\ncode automatically wakes the guest, then saves the RUNNING runstate in\nglobal_state_store(), hence the incoming migration code thinks the guest is\nrunning and continues the guest if autostart is true.\n\nOn the outgoing side, delete the call to qemu_system_wakeup_request().\nNow that vm_stop completely stops a vm in the suspended state (from the\npreceding patches), the existing call to vm_stop_force_state is sufficient\nto correctly migrate all vmstate.\n\nOn the incoming side, call vm_start if the pre-migration state was running\nor suspended.  For the latter, vm_start correctly restores the suspended\nstate, and a future system_wakeup monitor request will cause the vm to\nresume running.\n\nSigned-off-by: Steve Sistare \u003csteven.sistare@oracle.com\u003e\nReviewed-by: Peter Xu \u003cpeterx@redhat.com\u003e\nLink: https://lore.kernel.org/r/1704312341-66640-7-git-send-email-steven.sistare@oracle.com\nSigned-off-by: Peter Xu \u003cpeterx@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3ce04b2aafe2cf40ca47af3743938a54626d2383",
      "old_mode": 33188,
      "old_path": "migration/migration.c",
      "new_id": "81248110454f68328a630cb3fc5e64db3dcc42a8",
      "new_mode": 33188,
      "new_path": "migration/migration.c"
    }
  ]
}
