qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 20a519: migration: Create savevm.h for functi


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 20a519: migration: Create savevm.h for functions exported ...
Date: Thu, 01 Jun 2017 07:50:13 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 20a519a05a8a135caa4569c3bf5f6a53c4de5f3e
      
https://github.com/qemu/qemu/commit/20a519a05a8a135caa4569c3bf5f6a53c4de5f3e
  Author: Juan Quintela <address@hidden>
  Date:   2017-05-31 (Wed, 31 May 2017)

  Changed paths:
    M include/sysemu/sysemu.h
    M migration/colo.c
    M migration/migration.c
    M migration/postcopy-ram.c
    M migration/savevm.c
    A migration/savevm.h

  Log Message:
  -----------
  migration: Create savevm.h for functions exported from savevm.c

This removes last trace of migration functions from sysemu/sysemu.h.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>


  Commit: 9884db2814fbf1eb2ed99e02dadf58534d3ecc25
      
https://github.com/qemu/qemu/commit/9884db2814fbf1eb2ed99e02dadf58534d3ecc25
  Author: Felipe Franciosi <address@hidden>
  Date:   2017-05-31 (Wed, 31 May 2017)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: keep bytes_xfer_prev init'd to zero

The first time migration_bitmap_sync() is called, bytes_xfer_prev is set
to ram_state.bytes_transferred which is, at this point, zero. The next
time migration_bitmap_sync() is called, an iteration has happened and
bytes_xfer_prev is set to 'x' bytes. Most likely, more than one second
has passed, so the auto converge logic will be triggered and
bytes_xfer_now will also be set to 'x' bytes.

This condition is currently masked by dirty_rate_high_cnt, which will
wait for a few iterations before throttling. It would otherwise always
assume zero bytes have been copied and therefore throttle the guest
(possibly) prematurely.

Given bytes_xfer_prev is only used by the auto convergence logic, it
makes sense to only set its value after a check has been made against
bytes_xfer_now.

Signed-off-by: Felipe Franciosi <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: d693c6f10ff46c661b055288abae11deb6181a61
      
https://github.com/qemu/qemu/commit/d693c6f10ff46c661b055288abae11deb6181a61
  Author: Felipe Franciosi <address@hidden>
  Date:   2017-05-31 (Wed, 31 May 2017)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: set dirty_pages_rate before autoconverge logic

Currently, a "period" in the RAM migration logic is at least a second
long and accounts for what happened since the last period (or the
beginning of the migration). The dirty_pages_rate counter is calculated
at the end this logic.

If the auto convergence capability is enabled from the start of the
migration, it won't be able to use this counter the first time around.
This calculates dirty_pages_rate as soon as a period is deemed over,
which allows for it to be used immediately.

Signed-off-by: Felipe Franciosi <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: d2a4d85a8a786e1e59fc631c34dd474752810463
      
https://github.com/qemu/qemu/commit/d2a4d85a8a786e1e59fc631c34dd474752810463
  Author: Felipe Franciosi <address@hidden>
  Date:   2017-05-31 (Wed, 31 May 2017)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: set bytes_xfer_* outside of autoconverge logic

The bytes_xfer_now/prev counters are only used by the auto convergence
logic. However, they are used alongside the dirty_pages_rate counter,
which is calculated (and required) outside of this logic. The problem
with this approach is that if the auto convergence capability is changed
while a migration is ongoing, the relationship of the counters will be
broken.

This moves the management of bytes_xfer_now/prev counters outside of the
auto convergence logic to address this issue.

Signed-off-by: Felipe Franciosi <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: b4a3c64b16856a018869bfd4a9ed3b2a74554541
      
https://github.com/qemu/qemu/commit/b4a3c64b16856a018869bfd4a9ed3b2a74554541
  Author: Felipe Franciosi <address@hidden>
  Date:   2017-05-31 (Wed, 31 May 2017)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: use dirty_rate_high_cnt more aggressively

The commit message from 070afca25 suggests that dirty_rate_high_cnt
should be used more aggressively to start throttling after two
iterations instead of four. The code, however, only changes the auto
convergence behaviour to throttle after three iterations. This makes the
behaviour more aggressive by kicking off throttling after two iterations
as originally intended.

Signed-off-by: Felipe Franciosi <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: e5cac10a3b8c97af1f482cd9e8859cc54fc46524
      
https://github.com/qemu/qemu/commit/e5cac10a3b8c97af1f482cd9e8859cc54fc46524
  Author: Peter Maydell <address@hidden>
  Date:   2017-06-01 (Thu, 01 Jun 2017)

  Changed paths:
    M include/sysemu/sysemu.h
    M migration/colo.c
    M migration/migration.c
    M migration/postcopy-ram.c
    M migration/ram.c
    M migration/savevm.c
    A migration/savevm.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20170531' 
into staging

migration/next for 20170531

# gpg: Signature made Wed 31 May 2017 08:53:06 BST
# gpg:                using RSA key 0xF487EF185872D723
# gpg: Good signature from "Juan Quintela <address@hidden>"
# gpg:                 aka "Juan Quintela <address@hidden>"
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* remotes/juanquintela/tags/migration/20170531:
  migration: use dirty_rate_high_cnt more aggressively
  migration: set bytes_xfer_* outside of autoconverge logic
  migration: set dirty_pages_rate before autoconverge logic
  migration: keep bytes_xfer_prev init'd to zero
  migration: Create savevm.h for functions exported from savevm.c

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/61462af65af0...e5cac10a3b8c

reply via email to

[Prev in Thread] Current Thread [Next in Thread]