1. 18 4月, 2016 1 次提交
  2. 15 4月, 2016 1 次提交
    • C
      qemu: migration: Drop dead VNC cookie handling · dae0e227
      Cole Robinson 提交于
      The only caller of this code is:
      
          for (i = 0; i < dom->def->ngraphics; i++) {
             if (dom->def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
                 if (!(mig->graphics =
                       qemuMigrationCookieGraphicsAlloc(driver, dom->def->graphics[i])))
                     return -1;
                 mig->flags |= QEMU_MIGRATION_COOKIE_GRAPHICS;
                 break;
             }
          }
      
      So this is never triggered for VNC, and in fact VNC has no support for
      seamless migration anyways so that seems correct. Drop the dead VNC
      handling.
      dae0e227
  3. 14 4月, 2016 3 次提交
  4. 13 4月, 2016 2 次提交
  5. 01 4月, 2016 1 次提交
  6. 22 3月, 2016 3 次提交
  7. 21 3月, 2016 5 次提交
  8. 17 3月, 2016 1 次提交
  9. 08 3月, 2016 5 次提交
  10. 01 3月, 2016 1 次提交
  11. 19 2月, 2016 2 次提交
    • J
      qemu: Avoid calling qemuProcessStop without a job · 81f50cb9
      Jiri Denemark 提交于
      Calling qemuProcessStop without a job opens a way to race conditions
      with qemuDomainObjExitMonitor called in another thread. A real world
      example of such a race condition:
      
        - migration thread (A) calls qemuMigrationWaitForSpice
        - another thread (B) starts processing qemuDomainAbortJob API
        - thread B signals thread A via qemuDomainObjAbortAsyncJob
        - thread B enters monitor (qemuDomainObjEnterMonitor)
        - thread B calls qemuMonitorSend
        - thread A awakens and calls qemuProcessStop
        - thread A calls qemuMonitorClose and sets priv->mon to NULL
        - thread B calls qemuDomainObjExitMonitor with priv->mon == NULL
        => monitor stays ref'ed and locked
      
      Depending on how lucky we are, the race may result in a memory leak or
      it can even deadlock libvirtd's event loop if it tries to lock the
      monitor to process an event received before qemuMonitorClose was called.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      81f50cb9
    • J
      qemu: Pass async job to qemuProcessInit · b7a948be
      Jiri Denemark 提交于
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      b7a948be
  12. 17 2月, 2016 1 次提交
    • P
      qemu: migration: Refactor code now that we assume support for fd migration · 23087cfd
      Peter Krempa 提交于
      After removing capability check for fd migration the code that was left
      behind didn't make quite sense. The old exec migration would be used in
      case when pipe() failed. Remove the old code and make failure of pipe()
      a hard error.
      
      This additionally removes usage of virCgroupAllowDevicePath outside of
      qemu_cgroup.c.
      23087cfd
  13. 11 2月, 2016 1 次提交
    • M
      qemu: Connect to guest agent iff needed · 88ed9d77
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1293351
      
      Since we already have virtio channel events, we know when guest
      agent within guest has (dis-)connected. Instead of us blindly
      connecting to a socket that no one is listening to, we can just
      follow what qemu-ga does. This has a nice benefit that we don't
      need to 'guest-ping' the agent just to timeout and find out
      nobody is listening.
      
      The way that this commit is implemented:
      - don't connect in qemuProcessLaunch directly, defer that to event
        callback (which already follows the agent) -
        processSerialChangedEvent
      - after migration is settled, before we resume vCPUs, ask qemu
        whether somebody is listening on the socket and if so, connect
        to it.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      88ed9d77
  14. 08 2月, 2016 1 次提交
  15. 05 2月, 2016 1 次提交
  16. 04 2月, 2016 2 次提交
  17. 10 1月, 2016 1 次提交
  18. 09 1月, 2016 4 次提交
  19. 08 1月, 2016 1 次提交
  20. 07 1月, 2016 1 次提交
  21. 04 1月, 2016 1 次提交
    • M
      qemu: do not leak NBD disk data in migration cookie · 28c9eea0
      Michael Chapman 提交于
      Valgrind complained:
      
      ==18990== 20 (16 direct, 4 indirect) bytes in 1 blocks are definitely lost in loss record 188 of 996
      ==18990==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
      ==18990==    by 0x5292E9B: virAllocN (viralloc.c:191)
      ==18990==    by 0x2221E731: qemuMigrationCookieXMLParseStr (qemu_migration.c:1012)
      ==18990==    by 0x2221F390: qemuMigrationEatCookie (qemu_migration.c:1413)
      ==18990==    by 0x222228CE: qemuMigrationPrepareAny (qemu_migration.c:3463)
      ==18990==    by 0x22224121: qemuMigrationPrepareDirect (qemu_migration.c:3865)
      ==18990==    by 0x22251C25: qemuDomainMigratePrepare3Params (qemu_driver.c:12414)
      ==18990==    by 0x5389EE0: virDomainMigratePrepare3Params (libvirt-domain.c:5107)
      ==18990==    by 0x1278DB: remoteDispatchDomainMigratePrepare3ParamsHelper (remote.c:5425)
      ==18990==    by 0x53FF287: virNetServerProgramDispatch (virnetserverprogram.c:437)
      ==18990==    by 0x540523D: virNetServerProcessMsg (virnetserver.c:135)
      ==18990==    by 0x54052C7: virNetServerHandleJob (virnetserver.c:156)
      ==18990==
      ==18990== 20 (16 direct, 4 indirect) bytes in 1 blocks are definitely lost in loss record 189 of 996
      ==18990==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
      ==18990==    by 0x5292E9B: virAllocN (viralloc.c:191)
      ==18990==    by 0x2221E731: qemuMigrationCookieXMLParseStr (qemu_migration.c:1012)
      ==18990==    by 0x2221F390: qemuMigrationEatCookie (qemu_migration.c:1413)
      ==18990==    by 0x222249D2: qemuMigrationRun (qemu_migration.c:4395)
      ==18990==    by 0x22226365: doNativeMigrate (qemu_migration.c:4693)
      ==18990==    by 0x22228E45: qemuMigrationPerform (qemu_migration.c:5553)
      ==18990==    by 0x2225144B: qemuDomainMigratePerform3Params (qemu_driver.c:12621)
      ==18990==    by 0x539F5D8: virDomainMigratePerform3Params (libvirt-domain.c:5206)
      ==18990==    by 0x127305: remoteDispatchDomainMigratePerform3ParamsHelper (remote.c:5557)
      ==18990==    by 0x53FF287: virNetServerProgramDispatch (virnetserverprogram.c:437)
      ==18990==    by 0x540523D: virNetServerProcessMsg (virnetserver.c:135)
      
      If we're replacing the NBD data, it's simplest to free the old object
      (including the disk list) and allocate a new one.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      28c9eea0
  22. 26 11月, 2015 1 次提交