qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] cdb308: memory: introduce IOMMUNotifier and i


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] cdb308: memory: introduce IOMMUNotifier and its caps
Date: Wed, 28 Sep 2016 17:00:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: cdb3081269347fd9271fd1b7a9df312e2953bdd9
      
https://github.com/qemu/qemu/commit/cdb3081269347fd9271fd1b7a9df312e2953bdd9
  Author: Peter Xu <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M hw/vfio/common.c
    M include/exec/memory.h
    M include/hw/vfio/vfio-common.h
    M memory.c

  Log Message:
  -----------
  memory: introduce IOMMUNotifier and its caps

IOMMU Notifier list is used for notifying IO address mapping changes.
Currently VFIO is the only user.

However it is possible that future consumer like vhost would like to
only listen to part of its notifications (e.g., cache invalidations).

This patch introduced IOMMUNotifier and IOMMUNotfierFlag bits for a
finer grained control of it.

IOMMUNotifier contains a bitfield for the notify consumer describing
what kind of notification it is interested in. Currently two kinds of
notifications are defined:

- IOMMU_NOTIFIER_MAP:    for newly mapped entries (additions)
- IOMMU_NOTIFIER_UNMAP:  for entries to be removed (cache invalidates)

When registering the IOMMU notifier, we need to specify one or multiple
types of messages to listen to.

When notifications are triggered, its type will be checked against the
notifier's type bits, and only notifiers with registered bits will be
notified.

(For any IOMMU implementation, an in-place mapping change should be
 notified with an UNMAP followed by a MAP.)

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 5bf3d319030b1e95116ba49b31339f2bdd1d3b2a
      
https://github.com/qemu/qemu/commit/5bf3d319030b1e95116ba49b31339f2bdd1d3b2a
  Author: Peter Xu <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/ppc/spapr_iommu.c
    M include/exec/memory.h
    M memory.c

  Log Message:
  -----------
  memory: introduce IOMMUOps.notify_flag_changed

The new interface can be used to replace the old notify_started() and
notify_stopped(). Meanwhile it provides explicit flags so that IOMMUs
can know what kind of notifications it is requested for.

Acked-by: David Gibson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: a3276f786c84d3410be5bc3a4b3e5036745e5a90
      
https://github.com/qemu/qemu/commit/a3276f786c84d3410be5bc3a4b3e5036745e5a90
  Author: Peter Xu <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu, amd_iommu: allow UNMAP notifiers

x86 vIOMMUs still lack of a complete IOMMU notifier mechanism.
Before that is achieved, let's open a door for vhost DMAR support,
which only requires cache invalidations (UNMAP operations).

Meanwhile, convert hw_error() to error_report() and exit(1), to make
the error messages cleaner and obvious (no CPU registers will be dumped).

Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 048a2e8869cb7e26013e40d860c9ebdf8e28c2ac
      
https://github.com/qemu/qemu/commit/048a2e8869cb7e26013e40d860c9ebdf8e28c2ac
  Author: Peter Xu <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M hw/intc/ioapic.c
    M include/hw/compat.h

  Log Message:
  -----------
  x86: ioapic: boost default version to 0x20

It's 2.8 now, and maybe it's time to switch IOAPIC default version to
0x20.

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 63ae8b942d8e4095179bbf1a8946348bc71b7973
      
https://github.com/qemu/qemu/commit/63ae8b942d8e4095179bbf1a8946348bc71b7973
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M scripts/checkpatch.pl

  Log Message:
  -----------
  checkpatch: downgrade "architecture specific defines should be avoided"

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: cc9d8a3b2c41c22fb09f90f3085e6036c199c3ca
      
https://github.com/qemu/qemu/commit/cc9d8a3b2c41c22fb09f90f3085e6036c199c3ca
  Author: Felipe Franciosi <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M include/qemu/compiler.h

  Log Message:
  -----------
  compiler: Swap 'public domain' header for license

As discussed on the list [1], having a comment stating that this file
is "public domain" is arguably wrong and not legally binding. This patch
replaces that comment with a clear GPLv2+ license as proposed in [2].

[1] http://lists.nongnu.org/archive/html/qemu-devel/2016-09/msg06151.html
[2] http://lists.nongnu.org/archive/html/qemu-devel/2016-09/msg06217.html

Worth noting, compiler.h was originally created on 5c026320 by splitting
qemu-common.h. At the time, qemu-common.h was already GPLv2+.

Signed-off-by: Felipe Franciosi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 9c1f8f4493e8355d0e48f7d1eebdf86893ba082d
      
https://github.com/qemu/qemu/commit/9c1f8f4493e8355d0e48f7d1eebdf86893ba082d
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

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

  Log Message:
  -----------
  migration: sync all address spaces

Migrating a VM during reboot sometimes results in differences
between the source and destination in the SMRAM area.

This is because migration_bitmap_sync() only fetches from KVM
the dirty log of address_space_memory.  SMRAM memory slots
are ignored and the modifications to SMRAM are not sent to the
destination.

Reported-by: He Rongguang <address@hidden>
Reviewed-by: He Rongguang <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 1f04b992cf643cd9eb98394d1960b1a5bdfa4b42
      
https://github.com/qemu/qemu/commit/1f04b992cf643cd9eb98394d1960b1a5bdfa4b42
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M configure

  Log Message:
  -----------
  build-sys: remove unused GLIB_CFLAGS

Message-Id: <address@hidden>

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 4a0588996a5848ce9550188d0f60642636815059
      
https://github.com/qemu/qemu/commit/4a0588996a5848ce9550188d0f60642636815059
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M configure

  Log Message:
  -----------
  build-sys: put glib_cflags in QEMU_CFLAGS

This way, overriding CFLAGS on make command line keeps glib-cflags
and doesn't break the build.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e0eeb4a21a3ca4b296220ce4449d8acef9de9049
      
https://github.com/qemu/qemu/commit/e0eeb4a21a3ca4b296220ce4449d8acef9de9049
  Author: Alex Bennée <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus.c
    M hw/i386/kvm/apic.c
    M hw/i386/kvmvapic.c
    M hw/ppc/ppce500_spin.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M include/qom/cpu.h
    M kvm-all.c
    M target-i386/helper.c
    M target-i386/kvm.c
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/kvm.c
    M target-s390x/misc_helper.c

  Log Message:
  -----------
  cpus: pass CPUState to run_on_cpu helpers

CPUState is a fairly common pointer to pass to these helpers. This means
if you need other arguments for the async_run_on_cpu case you end up
having to do a g_malloc to stuff additional data into the routine. For
the current users this isn't a massive deal but for MTTCG this gets
cumbersome when the only other parameter is often an address.

This adds the typedef run_on_cpu_func for helper functions which has an
explicit CPUState * passed as the first parameter. All the users of
run_on_cpu and async_run_on_cpu have had their helpers updated to use
CPUState where available.

Signed-off-by: Alex Bennée <address@hidden>
[Sergey Fedorov:
 - eliminate more CPUState in user data;
 - remove unnecessary user data passing;
 - fix target-s390x/kvm.c and target-s390x/misc_helper.c]
Signed-off-by: Sergey Fedorov <address@hidden>
Acked-by: David Gibson <address@hidden> (ppc parts)
Reviewed-by: Christian Borntraeger <address@hidden> (s390 parts)
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: fd38b25103ad9e3b51862424074d4eef75975623
      
https://github.com/qemu/qemu/commit/fd38b25103ad9e3b51862424074d4eef75975623
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus.c

  Log Message:
  -----------
  cpus: Move common code out of {async_, }run_on_cpu()

Move the code common between run_on_cpu() and async_run_on_cpu() into a
new function queue_work_on_cpu().

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: a5403c69fcf2c946d166faa27e5db8436a00d183
      
https://github.com/qemu/qemu/commit/a5403c69fcf2c946d166faa27e5db8436a00d183
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus.c

  Log Message:
  -----------
  cpus: Rename flush_queued_work()

To avoid possible confusion, rename flush_queued_work() to
process_queued_cpu_work().

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 959f593c0e010cc0ee2e47e7f45e66c0695683b7
      
https://github.com/qemu/qemu/commit/959f593c0e010cc0ee2e47e7f45e66c0695683b7
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  linux-user: Use QemuMutex and QemuCond

Convert pthread_mutex_t and pthread_cond_t to QemuMutex and QemuCond.
This will allow to make some locks and conditional variables common
between user and system mode emulation.

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 178f94297a23e68183ce08bb841cf5d209208b03
      
https://github.com/qemu/qemu/commit/178f94297a23e68183ce08bb841cf5d209208b03
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick()

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 267f685b8b20784c97251618b515fcd17b42aad6
      
https://github.com/qemu/qemu/commit/267f685b8b20784c97251618b515fcd17b42aad6
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M Makefile.objs
    M bsd-user/main.c
    A cpus-common.c
    M exec.c
    M include/exec/cpu-common.h
    M include/exec/exec-all.h
    M include/qom/cpu.h
    M linux-user/main.c
    M vl.c

  Log Message:
  -----------
  cpus-common: move CPU list management to common code

Add a mutex for the CPU list to system emulation, as it will be used to
manage safe work.  Abstract manipulation of the CPU list in new functions
cpu_list_add and cpu_list_remove.

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: d148d90ee83738d45a90dc0b2fb7b1712f164103
      
https://github.com/qemu/qemu/commit/d148d90ee83738d45a90dc0b2fb7b1712f164103
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M bsd-user/main.c
    M cpus-common.c
    M cpus.c
    M include/qom/cpu.h
    M linux-user/main.c

  Log Message:
  -----------
  cpus-common: move CPU work item management to common code

Make CPU work core functions common between system and user-mode
emulation. User-mode does not use run_on_cpu, so do not implement it.

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 0e55539c076a61b0b10a1aea1158fc20fb159d99
      
https://github.com/qemu/qemu/commit/0e55539c076a61b0b10a1aea1158fc20fb159d99
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus-common.c

  Log Message:
  -----------
  cpus-common: fix uninitialized variable use in run_on_cpu

Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: ab129972c8b41e15b0521895a46fd9c752b68a5e
      
https://github.com/qemu/qemu/commit/ab129972c8b41e15b0521895a46fd9c752b68a5e
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M bsd-user/main.c
    M cpus-common.c
    M cpus.c
    M include/qom/cpu.h
    M linux-user/main.c

  Log Message:
  -----------
  cpus-common: move exclusive work infrastructure from linux-user

This will serve as the base for async_safe_run_on_cpu.  Because
start_exclusive uses CPU_FOREACH, merge exclusive_lock with
qemu_cpu_list_lock: together with a call to exclusive_idle (via
cpu_exec_start/end) in cpu_list_add, this protects exclusive work
against concurrent CPU addition and removal.

Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: a200f2fb571f337db37f865aec18f655fa3c872b
      
https://github.com/qemu/qemu/commit/a200f2fb571f337db37f865aec18f655fa3c872b
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    A docs/tcg-exclusive.promela

  Log Message:
  -----------
  docs: include formal model for TCG exclusive sections

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c978b3168727d3a76ffcb18462ea972f50b53634
      
https://github.com/qemu/qemu/commit/c978b3168727d3a76ffcb18462ea972f50b53634
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus-common.c

  Log Message:
  -----------
  cpus-common: always defer async_run_on_cpu work items

async_run_on_cpu is only called from the I/O thread, not from CPU threads,
so it doesn't make any difference.  It will make a difference however
for async_safe_run_on_cpu.

Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: cf07da65f335b9a74e62f5413078f67280572f36
      
https://github.com/qemu/qemu/commit/cf07da65f335b9a74e62f5413078f67280572f36
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus-common.c
    M docs/tcg-exclusive.promela

  Log Message:
  -----------
  cpus-common: remove redundant call to exclusive_idle()

No need to call exclusive_idle() from cpu_exec_end since it is done
immediately afterwards in cpu_exec_start.  Any exclusive section could
run as soon as cpu_exec_end leaves, because cpu->running is false and the
mutex is not taken, so the call does not add any protection either.

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 758e1b2b622d7c177dc2d95e887a11aa069b7e68
      
https://github.com/qemu/qemu/commit/758e1b2b622d7c177dc2d95e887a11aa069b7e68
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus-common.c
    M docs/tcg-exclusive.promela
    M include/qom/cpu.h

  Log Message:
  -----------
  cpus-common: simplify locking for start_exclusive/end_exclusive

It is not necessary to hold qemu_cpu_list_mutex throughout the
exclusive section, because no other exclusive section can run
while pending_cpus != 0.

exclusive_idle() is called in cpu_exec_start(), and that prevents
any CPUs created after start_exclusive() from entering cpu_exec()
during an exclusive section.

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 53f5ed95064fe6807890cd5535445a05d3361bd2
      
https://github.com/qemu/qemu/commit/53f5ed95064fe6807890cd5535445a05d3361bd2
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

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

  Log Message:
  -----------
  cpus-common: Introduce async_safe_run_on_cpu()

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 3359baad36889b83df40b637ed993a4b816c4906
      
https://github.com/qemu/qemu/commit/3359baad36889b83df40b637ed993a4b816c4906
  Author: Sergey Fedorov <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpu-exec.c
    M include/exec/tb-context.h
    M include/qom/cpu.h
    M translate-all.c

  Log Message:
  -----------
  tcg: Make tb_flush() thread safe

Use async_safe_run_on_cpu() to make tb_flush() thread safe.  This is
possible now that code generation does not happen in the middle of
execution.

It can happen that multiple threads schedule a safe work to flush the
translation buffer. To keep statistics and debugging output sane, always
check if the translation buffer has already been flushed.

Signed-off-by: Sergey Fedorov <address@hidden>
Signed-off-by: Sergey Fedorov <address@hidden>
[AJB: minor re-base fixes]
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c265e976f4669fd65f5b47e6865f50d1cb66bd02
      
https://github.com/qemu/qemu/commit/c265e976f4669fd65f5b47e6865f50d1cb66bd02
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M cpus-common.c
    M docs/tcg-exclusive.promela
    M include/qom/cpu.h

  Log Message:
  -----------
  cpus-common: lock-free fast path for cpu_exec_start/end

Set cpu->running without taking the cpu_list lock, only requiring it if
there is a concurrent exclusive section.  This requires adding a new
field to CPUState, which records whether a running CPU is being counted
in pending_cpus.

When an exclusive section is started concurrently with cpu_exec_start,
cpu_exec_start can use the new field to determine if it has to wait for
the end of the exclusive section.  Likewise, cpu_exec_end can use it to
see if start_exclusive is waiting for that CPU.

This a separate patch for easier bisection of issues.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f186d64d8fda4bb22c15beb8e45b7814fbd8b51e
      
https://github.com/qemu/qemu/commit/f186d64d8fda4bb22c15beb8e45b7814fbd8b51e
  Author: Pavel Dovgalyuk <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M replay/replay-events.c
    M replay/replay-internal.c
    M replay/replay-internal.h
    M replay/replay-time.c
    M replay/replay.c

  Log Message:
  -----------
  replay: move internal data to the structure

This patch moves replay static variables into the structure
to allow saving and loading them with savevm/loadvm.

Reviewed-by: Paolo Bonzini <address@hidden>

Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 306e196fa24c46d384577fb9c16e7cdb80f26d17
      
https://github.com/qemu/qemu/commit/306e196fa24c46d384577fb9c16e7cdb80f26d17
  Author: Pavel Dovgalyuk <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M replay/Makefile.objs
    M replay/replay-internal.h
    A replay/replay-snapshot.c
    M replay/replay.c

  Log Message:
  -----------
  replay: vmstate for replay module

This patch introduces vmstate for replay data structures.
It allows saving and loading vmstate while replaying.

Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6d0ceb80ffe18ad4b28aab7356f440636c0be7be
      
https://github.com/qemu/qemu/commit/6d0ceb80ffe18ad4b28aab7356f440636c0be7be
  Author: Pavel Dovgalyuk <address@hidden>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M block/blkreplay.c
    M cpus.c
    M include/sysemu/replay.h
    M replay/replay-events.c
    M replay/replay-internal.h
    M replay/replay-snapshot.c
    M stubs/replay.c
    M vl.c

  Log Message:
  -----------
  replay: allow replay stopping and restarting

This patch fixes bug with stopping and restarting replay
through monitor.

Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c640f2849ee8775fe1bbd7a2772610aa77816f9f
      
https://github.com/qemu/qemu/commit/c640f2849ee8775fe1bbd7a2772610aa77816f9f
  Author: Peter Maydell <address@hidden>
  Date:   2016-09-28 (Wed, 28 Sep 2016)

  Changed paths:
    M Makefile.objs
    M block/blkreplay.c
    M bsd-user/main.c
    M configure
    M cpu-exec.c
    A cpus-common.c
    M cpus.c
    A docs/tcg-exclusive.promela
    M exec.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/i386/kvm/apic.c
    M hw/i386/kvmvapic.c
    M hw/intc/ioapic.c
    M hw/ppc/ppce500_spin.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_iommu.c
    M hw/vfio/common.c
    M include/exec/cpu-common.h
    M include/exec/exec-all.h
    M include/exec/memory.h
    M include/exec/tb-context.h
    M include/hw/compat.h
    M include/hw/vfio/vfio-common.h
    M include/qemu/compiler.h
    M include/qom/cpu.h
    M include/sysemu/replay.h
    M kvm-all.c
    M linux-user/main.c
    M memory.c
    M migration/ram.c
    M replay/Makefile.objs
    M replay/replay-events.c
    M replay/replay-internal.c
    M replay/replay-internal.h
    A replay/replay-snapshot.c
    M replay/replay-time.c
    M replay/replay.c
    M scripts/checkpatch.pl
    M stubs/replay.c
    M target-i386/helper.c
    M target-i386/kvm.c
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/kvm.c
    M target-s390x/misc_helper.c
    M translate-all.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

* thread-safe tb_flush (Fred, Alex, Sergey, me, Richard, Emilio,... :-)
* license clarification for compiler.h (Felipe)
* glib cflags improvement (Marc-André)
* checkpatch silencing (Paolo)
* SMRAM migration fix (Paolo)
* Replay improvements (Pavel)
* IOMMU notifier improvements (Peter)
* IOAPIC now defaults to version 0x20 (Peter)

# gpg: Signature made Tue 27 Sep 2016 10:57:40 BST
# gpg:                using RSA key 0xBFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>"
# gpg:                 aka "Paolo Bonzini <address@hidden>"
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream: (28 commits)
  replay: allow replay stopping and restarting
  replay: vmstate for replay module
  replay: move internal data to the structure
  cpus-common: lock-free fast path for cpu_exec_start/end
  tcg: Make tb_flush() thread safe
  cpus-common: Introduce async_safe_run_on_cpu()
  cpus-common: simplify locking for start_exclusive/end_exclusive
  cpus-common: remove redundant call to exclusive_idle()
  cpus-common: always defer async_run_on_cpu work items
  docs: include formal model for TCG exclusive sections
  cpus-common: move exclusive work infrastructure from linux-user
  cpus-common: fix uninitialized variable use in run_on_cpu
  cpus-common: move CPU work item management to common code
  cpus-common: move CPU list management to common code
  linux-user: Add qemu_cpu_is_self() and qemu_cpu_kick()
  linux-user: Use QemuMutex and QemuCond
  cpus: Rename flush_queued_work()
  cpus: Move common code out of {async_, }run_on_cpu()
  cpus: pass CPUState to run_on_cpu helpers
  build-sys: put glib_cflags in QEMU_CFLAGS
  ...

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


Compare: https://github.com/qemu/qemu/compare/bc63afaf5f6d...c640f2849ee8

reply via email to

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