qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 1ffb5d: Change the method to calculate dirty-


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 1ffb5d: Change the method to calculate dirty-pages-rate
Date: Thu, 16 Mar 2017 09:45:12 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 1ffb5dfd35888cd9de78cc97d3e3e3cb1f3c4887
      
https://github.com/qemu/qemu/commit/1ffb5dfd35888cd9de78cc97d3e3e3cb1f3c4887
  Author: Chao Fan <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M include/exec/ram_addr.h
    M migration/ram.c

  Log Message:
  -----------
  Change the method to calculate dirty-pages-rate

In function cpu_physical_memory_sync_dirty_bitmap, file
include/exec/ram_addr.h:

if (src[idx][offset]) {
    unsigned long bits = atomic_xchg(&src[idx][offset], 0);
    unsigned long new_dirty;
    new_dirty = ~dest[k];
    dest[k] |= bits;
    new_dirty &= bits;
    num_dirty += ctpopl(new_dirty);
}

After these codes executed, only the pages not dirtied in bitmap(dest),
but dirtied in dirty_memory[DIRTY_MEMORY_MIGRATION] will be calculated.
For example:
When ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION] = 0b00001111,
and atomic_rcu_read(&migration_bitmap_rcu)->bmap = 0b00000011,
the new_dirty will be 0b00001100, and this function will return 2 but not
4 which is expected.
the dirty pages in dirty_memory[DIRTY_MEMORY_MIGRATION] are all new,
so these should be calculated also.

Signed-off-by: Chao Fan <address@hidden>
Signed-off-by: Li Zhijian <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 4af245dc3e6e5c96405b3edb9d75657504256469
      
https://github.com/qemu/qemu/commit/4af245dc3e6e5c96405b3edb9d75657504256469
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M migration/migration.c
    M migration/tls.c
    M qapi-schema.json

  Log Message:
  -----------
  migration: use "" as the default for tls-creds/hostname

The tls-creds parameter has a default value of NULL indicating
that TLS should not be used. Setting it to non-NULL enables
use of TLS. Once tls-creds are set to a non-NULL value via the
monitor, it isn't possible to set them back to NULL again, due
to current implementation limitations. The empty string is not
a valid QObject identifier, so this switches to use "" as the
default, indicating that TLS will not be used

The tls-hostname parameter has a default value of NULL indicating
the the hostname from the migrate connection URI should be used.
Again, once tls-hostname is set non-NULL, to override the default
hostname for x509 cert validation, it isn't possible to reset it
back to NULL via the monitor. The empty string is not a valid
hostname, so this switches to use "" as the default, indicating
that the migrate URI hostname should be used.

Using "" as the default for both, also means that the monitor
commands "info migrate_parameters" / "query-migrate-parameters"
will report existance of tls-creds/tls-parameters even when set
to their default values.

Signed-off-by: Daniel P. Berrange <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Eric Blake <address@hidden>

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


  Commit: 1cf6aa74b32f18f9b5faf525a93b0c1f609acb1f
      
https://github.com/qemu/qemu/commit/1cf6aa74b32f18f9b5faf525a93b0c1f609acb1f
  Author: Lidong Chen <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M migration/block.c

  Log Message:
  -----------
  migration/block: Avoid invoking blk_drain too frequently

Increase bmds->cur_dirty after submit io, so reduce the frequency
involve into blk_drain, and improve the performance obviously
when block migration.

The performance test result of this patch:

During the block dirty save phase, this patch improve guest os IOPS
from 4.0K to 9.5K. and improve the migration speed from
505856 rsec/s to 855756 rsec/s.

Signed-off-by: Lidong Chen <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: e1e686c1fad6f4c4f7c98565c130526f64e7f02c
      
https://github.com/qemu/qemu/commit/e1e686c1fad6f4c4f7c98565c130526f64e7f02c
  Author: QingFeng Hao <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M migration/vmstate.c

  Log Message:
  -----------
  vmstate: fix failed iotests case 68 and 91

This problem affects s390x only if we are running without KVM.
Basically, S390CPU.irqstate is unused if we do not use KVM,
and thus no buffer is allocated.
This causes size=0, first_elem=NULL and n_elems=1 in
vmstate_load_state and vmstate_save_state. And the assert fails.
With this fix we can go back to the old behavior and support
VMS_VBUFFER with size 0 and nullptr.

Signed-off-by: QingFeng Hao <address@hidden>
Signed-off-by: Halil Pasic <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 463a4ac23bcf0f0b65c850fa66f5ae6e43edd243
      
https://github.com/qemu/qemu/commit/463a4ac23bcf0f0b65c850fa66f5ae6e43edd243
  Author: Dr. David Alan Gilbert <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M exec.c
    M include/exec/cpu-common.h

  Log Message:
  -----------
  RAMBlocks: qemu_ram_is_shared

Provide a helper to say whether a RAMBlock was created as a
shared mapping.

Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 8679638b0e231f97ad3456c681bf569ca7f7f6d5
      
https://github.com/qemu/qemu/commit/8679638b0e231f97ad3456c681bf569ca7f7f6d5
  Author: Dr. David Alan Gilbert <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M migration/postcopy-ram.c

  Log Message:
  -----------
  postcopy: Check for shared memory

Postcopy doesn't support migration of RAM shared with another process
yet (we've got a bunch of things to understand).
Check for the case and don't allow postcopy to be enabled.

Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: c5e737e5fbb8e48f9371764cc156ed15f4047a00
      
https://github.com/qemu/qemu/commit/c5e737e5fbb8e48f9371764cc156ed15f4047a00
  Author: Peter Maydell <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M exec.c
    M include/exec/cpu-common.h
    M include/exec/ram_addr.h
    M migration/block.c
    M migration/migration.c
    M migration/postcopy-ram.c
    M migration/ram.c
    M migration/tls.c
    M migration/vmstate.c
    M qapi-schema.json

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

migration/next for 20170316

# gpg: Signature made Thu 16 Mar 2017 08:21:51 GMT
# 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/20170316:
  postcopy: Check for shared memory
  RAMBlocks: qemu_ram_is_shared
  vmstate: fix failed iotests case 68 and 91
  migration/block: Avoid invoking blk_drain too frequently
  migration: use "" as the default for tls-creds/hostname
  Change the method to calculate dirty-pages-rate

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


Compare: https://github.com/qemu/qemu/compare/094a9a7cd677...c5e737e5fbb8

reply via email to

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