1. 10 7月, 2018 4 次提交
  2. 27 6月, 2018 5 次提交
    • D
      migration: fix crash in when incoming client channel setup fails · ca273df3
      Daniel P. Berrangé 提交于
      The way we determine if we can start the incoming migration was
      changed to use migration_has_all_channels() in:
      
        commit 428d8908
        Author: Juan Quintela <quintela@redhat.com>
        Date:   Mon Jul 24 13:06:25 2017 +0200
      
          migration: Create migration_has_all_channels
      
      This method in turn calls multifd_recv_all_channels_created()
      which is hardcoded to always return 'true' when multifd is
      not in use. This is a latent bug...
      
      ...activated in a following commit where that return result
      ends up acting as the flag to indicate whether it is possible
      to start processing the migration:
      
        commit 36c2f8be
        Author: Juan Quintela <quintela@redhat.com>
        Date:   Wed Mar 7 08:40:52 2018 +0100
      
          migration: Delay start of migration main routines
      
      This means that if channel initialization fails with normal
      migration, it'll never notice and attempt to start the
      incoming migration regardless and crash on a NULL pointer.
      
      This can be seen, for example, if a client connects to a server
      requiring TLS, but has an invalid x509 certificate:
      
      qemu-system-x86_64: The certificate hasn't got a known issuer
      qemu-system-x86_64: migration/migration.c:386: process_incoming_migration_co: Assertion `mis->from_src_file' failed.
      
       #0  0x00007fffebd24f2b in raise () at /lib64/libc.so.6
       #1  0x00007fffebd0f561 in abort () at /lib64/libc.so.6
       #2  0x00007fffebd0f431 in _nl_load_domain.cold.0 () at /lib64/libc.so.6
       #3  0x00007fffebd1d692 in  () at /lib64/libc.so.6
       #4  0x0000555555ad027e in process_incoming_migration_co (opaque=<optimized out>) at migration/migration.c:386
       #5  0x0000555555c45e8b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at util/coroutine-ucontext.c:116
       #6  0x00007fffebd3a6a0 in __start_context () at /lib64/libc.so.6
       #7  0x0000000000000000 in  ()
      
      To handle the non-multifd case, we check whether mis->from_src_file
      is non-NULL. With this in place, the migration server drops the
      rejected client and stays around waiting for another, hopefully
      valid, client to arrive.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      Message-Id: <20180619163552.18206-1-berrange@redhat.com>
      Reviewed-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      ca273df3
    • J
      migration: Create ram_save_multifd_page · b9ee2f7d
      Juan Quintela 提交于
      The function still don't use multifd, but we have simplified
      ram_save_page, xbzrle and RDMA stuff is gone.  We have added a new
      counter.
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      
      --
      Add last_page parameter
      Add commets for done and address
      Remove multifd field, it is the same than normal pages
      Merge next patch, now we send multiple pages at a time
      Remove counter for multifd pages, it is identical to normal pages
      Use iovec's instead of creating the equivalent.
      Clear memory used by pages (dave)
      Use g_new0(danp)
      define MULTIFD_CONTINUE
      now pages member is a pointer
      Fix off-by-one in number of pages in one packet
      Remove RAM_SAVE_FLAG_MULTIFD_PAGE
      s/multifd_pages_t/MultiFDPages_t/
      add comment explaining what it means
      b9ee2f7d
    • J
      migration: Create multifd_bytes ram_counter · a61c45bd
      Juan Quintela 提交于
      This will include how many bytes they are sent through multifd.
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      a61c45bd
    • J
      migration: Abstract the number of bytes sent · 0c8f0efd
      Juan Quintela 提交于
      Right now we use the "position" inside the QEMUFile, but things like
      RDMA already do weird things to be able to maintain that counter
      right, and multifd will have some similar problems.
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      0c8f0efd
    • J
      migration: Calculate mbps only during transfer time · 6cde6fbe
      Juan Quintela 提交于
      We used to include in this calculation the setup time, but that can be
      quite big in rdma or multifd.
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      6cde6fbe
  3. 15 6月, 2018 3 次提交
  4. 04 6月, 2018 2 次提交
  5. 16 5月, 2018 21 次提交
  6. 04 5月, 2018 1 次提交
  7. 26 4月, 2018 2 次提交
  8. 10 4月, 2018 1 次提交
  9. 29 3月, 2018 1 次提交