Skip to content
Snippets Groups Projects
  1. Mar 08, 2016
  2. Feb 28, 2016
  3. Feb 26, 2016
  4. Feb 25, 2016
  5. Feb 23, 2016
    • Dr. David Alan Gilbert's avatar
      Postcopy+spice: Pass spice migration data earlier · b82fc321
      Dr. David Alan Gilbert authored
      
      Spice hooks the migration status changes to figure out when to
      transmit information to the new spice server; but the migration
      status in postcopy doesn't quite fit - the destination starts
      running before the end of the source migration.
      
      It's not a case of hanging off the migration status change to
      postcopy-active either, since that happens before we stop the
      guest CPU.
      
      Fix it by sending a notify just after sending the device state,
      and adding a flag that can be tested by the notify receiver.
      
      Symptom:
         spice handover doesn't work with the error:
         red_worker.c:11540:display_channel_wait_for_migrate_data: timeout
      
      Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      Reviewed-by: default avatarAmit Shah <amit.shah@redhat.com>
      Message-id: 1456161452-25318-1-git-send-email-dgilbert@redhat.com
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      b82fc321
  6. Feb 22, 2016
  7. Feb 16, 2016
  8. Feb 11, 2016
  9. Feb 09, 2016
    • Stefan Hajnoczi's avatar
      memory: RCU ram_list.dirty_memory[] for safe RAM hotplug · 5b82b703
      Stefan Hajnoczi authored
      
      Although accesses to ram_list.dirty_memory[] use atomics so multiple
      threads can safely dirty the bitmap, the data structure is not fully
      thread-safe yet.
      
      This patch handles the RAM hotplug case where ram_list.dirty_memory[] is
      grown.  ram_list.dirty_memory[] is change from a regular bitmap to an
      RCU array of pointers to fixed-size bitmap blocks.  Threads can continue
      accessing bitmap blocks while the array is being extended.  See the
      comments in the code for an in-depth explanation of struct
      DirtyMemoryBlocks.
      
      I have tested that live migration with virtio-blk dataplane works.
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Message-Id: <1453728801-5398-2-git-send-email-stefanha@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      5b82b703
  10. Feb 05, 2016
  11. Jan 29, 2016
  12. Jan 22, 2016
  13. Jan 20, 2016
    • Kevin Wolf's avatar
      block: Inactivate BDS when migration completes · 76b1c7fe
      Kevin Wolf authored
      
      So far, live migration with shared storage meant that the image is in a
      not-really-ready don't-touch-me state on the destination while the
      source is still actively using it, but after completing the migration,
      the image was fully opened on both sides. This is bad.
      
      This patch adds a block driver callback to inactivate images on the
      source before completing the migration. Inactivation means that it goes
      to a state as if it was just live migrated to the qemu instance on the
      source (i.e. BDRV_O_INACTIVE is set). You're then supposed to continue
      either on the source or on the destination, which takes ownership of the
      image.
      
      A typical migration looks like this now with respect to disk images:
      
      1. Destination qemu is started, the image is opened with
         BDRV_O_INACTIVE. The image is fully opened on the source.
      
      2. Migration is about to complete. The source flushes the image and
         inactivates it. Now both sides have the image opened with
         BDRV_O_INACTIVE and are expecting the other side to still modify it.
      
      3. One side (the destination on success) continues and calls
         bdrv_invalidate_all() in order to take ownership of the image again.
         This removes BDRV_O_INACTIVE on the resuming side; the flag remains
         set on the other side.
      
      This ensures that the same image isn't written to by both instances
      (unless both are resumed, but then you get what you deserve). This is
      important because .bdrv_close for non-BDRV_O_INACTIVE images could write
      to the image file, which is definitely forbidden while another host is
      using the image.
      
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Reviewed-by: default avatarJohn Snow <jsnow@redhat.com>
      76b1c7fe
  14. Jan 16, 2016
  15. Jan 13, 2016
  16. Dec 17, 2015
    • Eric Blake's avatar
      qapi: Don't let implicit enum MAX member collide · 7fb1cf16
      Eric Blake authored
      
      Now that we guarantee the user doesn't have any enum values
      beginning with a single underscore, we can use that for our
      own purposes.  Renaming ENUM_MAX to ENUM__MAX makes it obvious
      that the sentinel is generated.
      
      This patch was mostly generated by applying a temporary patch:
      
      |diff --git a/scripts/qapi.py b/scripts/qapi.py
      |index e6d014b..b862ec9 100644
      |--- a/scripts/qapi.py
      |+++ b/scripts/qapi.py
      |@@ -1570,6 +1570,7 @@ const char *const %(c_name)s_lookup[] = {
      |     max_index = c_enum_const(name, 'MAX', prefix)
      |     ret += mcgen('''
      |     [%(max_index)s] = NULL,
      |+// %(max_index)s
      | };
      | ''',
      |                max_index=max_index)
      
      then running:
      
      $ cat qapi-{types,event}.c tests/test-qapi-types.c |
          sed -n 's,^// \(.*\)MAX,s|\1MAX|\1_MAX|g,p' > list
      $ git grep -l _MAX | xargs sed -i -f list
      
      The only things not generated are the changes in scripts/qapi.py.
      
      Rejecting enum members named 'MAX' is now useless, and will be dropped
      in the next patch.
      
      Signed-off-by: default avatarEric Blake <eblake@redhat.com>
      Message-Id: <1447836791-369-23-git-send-email-eblake@redhat.com>
      Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
      [Rebased to current master, commit message tweaked]
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      7fb1cf16
  17. Dec 11, 2015
  18. Dec 02, 2015
  19. Nov 25, 2015
  20. Nov 19, 2015
Loading