qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 09/27] migration: calculate vCPU blocktime on dst


From: Alexey Perevalov
Subject: Re: [Qemu-devel] [PULL 09/27] migration: calculate vCPU blocktime on dst side
Date: Tue, 16 Jan 2018 22:22:34 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0

On 01/16/2018 08:43 PM, Dr. David Alan Gilbert wrote:
* Max Reitz (address@hidden) wrote:
On 2018-01-15 12:52, Juan Quintela wrote:
From: Alexey Perevalov <address@hidden>

This patch provides blocktime calculation per vCPU,
as a summary and as a overlapped value for all vCPUs.

This approach was suggested by Peter Xu, as an improvements of
previous approch where QEMU kept tree with faulted page address and cpus bitmask
in it. Now QEMU is keeping array with faulted page address as value and vCPU
as index. It helps to find proper vCPU at UFFD_COPY time. Also it keeps
list for blocktime per vCPU (could be traced with page_fault_addr)

Blocktime will not calculated if postcopy_blocktime field of
MigrationIncomingState wasn't initialized.

Signed-off-by: Alexey Perevalov <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
---
  migration/postcopy-ram.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++-
  migration/trace-events   |   5 +-
  2 files changed, 146 insertions(+), 2 deletions(-)
For me, this breaks compilation with clang -m32:

   LINK    x86_64-softmmu/qemu-system-x86_64
../migration/postcopy-ram.o: In function `mark_postcopy_blocktime_begin':
/home/maxx/projects/qemu/migration/postcopy-ram.c:599: undefined
reference to `__atomic_exchange_8'
/home/maxx/projects/qemu/migration/postcopy-ram.c:600: undefined
reference to `__atomic_exchange_8'
/home/maxx/projects/qemu/migration/postcopy-ram.c:609: undefined
reference to `__atomic_exchange_8'
../migration/postcopy-ram.o: In function `mark_postcopy_blocktime_end':
/home/maxx/projects/qemu/migration/postcopy-ram.c:665: undefined
reference to `__atomic_fetch_add_8'
/home/maxx/projects/qemu/migration/postcopy-ram.c:686: undefined
reference to `__atomic_fetch_add_8'

Am I doing something wrong?
Hmm I also see that with clang on 32bit (gcc is fine);
the problem is the postcopy blocktime stuff is doing some 64bit
atomics, which you can never be sure 32bit will support.

Dave
I didn't check clang build, ok, I'll check it.


Max



--
Dr. David Alan Gilbert / address@hidden / Manchester, UK




--
Best regards,
Alexey Perevalov,
phone: +7 (495) 797 25 00 ext 3969
e-mail: address@hidden <mailto:address@hidden>

Samsung R&D Institute Rus
12 Dvintsev street, building 1
127018, Moscow, Russian Federation



reply via email to

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