qemu/util
Pavel Dovgalyuk 677a3baba4 replay: synchronize on every virtual timer callback
Sometimes virtual timer callbacks depend on order
of virtual timer processing and warping of virtual clock.
Therefore every callback should be logged to make replay deterministic.
This patch creates a checkpoint before every virtual timer callback.
With these checkpoints virtual timers processing and clock warping
events order is completely deterministic.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Acked-by: Alex Bennée <alex.bennee@linaro.org>

--

v2:
  - remove mutex lock/unlock for virtual clock checkpoint since it is
    not process any asynchronous events (commit ca9759c2a9)
  - bump record/replay log file version
Message-Id: <159012932716.27256.8854065545365559921.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-06-26 06:45:30 -04:00
..
aio-posix.c aio-posix: disable fdmon-io_uring when GSource is used 2020-05-18 18:16:00 +01:00
aio-posix.h aio-posix: remove idle poll handlers to improve scalability 2020-03-09 16:45:16 +00:00
aio-wait.c
aio-win32.c aio-posix: disable fdmon-io_uring when GSource is used 2020-05-18 18:16:00 +01:00
aiocb.c
async.c aio-posix: disable fdmon-io_uring when GSource is used 2020-05-18 18:16:00 +01:00
atomic64.c
base64.c
bitmap.c
bitops.c
buffer.c
bufferiszero.c util/bufferiszero: improve avx2 accelerator 2020-04-01 14:24:03 -04:00
cacheinfo.c util/cacheinfo: fix crash when compiling with uClibc 2020-01-21 14:18:12 -10:00
compatfd.c
coroutine-sigaltstack.c
coroutine-ucontext.c configure: add --enable-tsan flag + fiber annotations for coroutine-ucontext 2020-06-16 14:49:05 +01:00
coroutine-win32.c
crc32c.c
cutils.c util/cutils: Turn FIXME comment into QEMU_BUILD_BUG_ON() 2019-12-18 12:26:25 +01:00
dbus.c util: add dbus helper unit 2020-01-06 18:41:32 +04:00
drm.c
envlist.c
error.c error: make Error **errp const where it is appropriate 2019-12-18 08:36:16 +01:00
event_notifier-posix.c event_notifier: avoid dandling file descriptor in event_notifier_cleanup 2019-10-24 19:26:52 +02:00
event_notifier-win32.c
fdmon-epoll.c aio-posix: support userspace polling of fd monitoring 2020-03-09 16:41:31 +00:00
fdmon-io_uring.c aio-posix: don't duplicate fd handler deletion in fdmon_io_uring_destroy() 2020-05-18 18:16:00 +01:00
fdmon-poll.c aio-posix: support userspace polling of fd monitoring 2020-03-09 16:41:31 +00:00
fifo8.c
filemonitor-inotify.c
filemonitor-stub.c
getauxval.c util/getauxval: Porting to FreeBSD getauxval feature 2020-06-26 06:45:29 -04:00
guest-random.c replay: record and replay random number sources 2020-01-07 12:08:39 +01:00
hbitmap.c block/dirty-bitmap: improve _next_dirty_area API 2020-03-18 14:03:46 -04:00
hexdump.c
host-utils.c
id.c chardev: generate an internal id when none given 2020-01-07 16:50:09 +04:00
iov.c util/ioc.c: try to reassure Coverity about qemu_iovec_init_extended 2019-10-08 14:27:35 +01:00
iova-tree.c
keyval.c
lockcnt.c
log.c lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00
main-loop.c Do not use %m in common code to print error messages 2019-10-22 09:38:42 +02:00
Makefile.objs util/Makefile: Reduce the user-mode object list 2020-06-05 21:23:22 +02:00
memfd.c
mmap-alloc.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
module.c module: increase dirs array size by one 2020-04-13 02:56:18 -04:00
notify.c
nvdimm-utils.c mem: move nvdimm_device_list to utilities 2020-02-21 09:15:03 +11:00
osdep.c util/osdep: Improve error report by calling error_setg_win32() 2020-03-09 13:36:15 +01:00
oslib-posix.c util/oslib-posix : qemu_init_exec_dir implementation for Mac 2020-06-23 11:39:46 +01:00
oslib-win32.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
pagesize.c
path.c
qdist.c
qemu-co-shared-resource.c util: introduce SharedResource 2019-10-28 11:22:31 +01:00
qemu-config.c
qemu-coroutine-io.c yield_until_fd_readable: make it work with any AioContect 2019-10-25 14:38:29 +02:00
qemu-coroutine-lock.c
qemu-coroutine-sleep.c qemu-coroutine-sleep: Silence Coverity warning 2019-11-18 16:01:34 -06:00
qemu-coroutine.c
qemu-error.c error: Fix -msg timestamp default 2019-12-18 08:36:15 +01:00
qemu-openpty.c
qemu-option.c qemu-option: Clean up after the previous commit 2020-04-30 06:51:15 +02:00
qemu-print.c
qemu-progress.c
qemu-sockets.c qemu-sockets: add abstract UNIX domain socket support 2020-05-20 10:34:40 +01:00
qemu-thread-common.h
qemu-thread-posix.c util: Added tsan annotate for thread name. 2020-06-16 14:49:05 +01:00
qemu-thread-win32.c
qemu-timer-common.c Remove support for CLOCK_MONOTONIC not being defined 2020-02-12 16:23:01 +01:00
qemu-timer.c replay: synchronize on every virtual timer callback 2020-06-26 06:45:30 -04:00
qht.c qht: call qemu_spin_destroy for head buckets 2020-06-16 14:49:05 +01:00
qsp.c qsp: Use WITH_RCU_READ_LOCK_GUARD 2019-12-17 19:33:52 +01:00
range.c
rcu.c lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00
readline.c
selfmap.c linux-user: factor out reading of /proc/self/maps 2020-04-07 16:19:49 +01:00
stats64.c
sys_membarrier.c
systemd.c tools: Fix use of fcntl(F_SETFD) during socket activation 2020-05-04 14:54:35 -05:00
thread-pool.c lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00
throttle.c
timed-average.c
trace-events aio-posix: remove idle poll handlers to improve scalability 2020-03-09 16:45:16 +00:00
unicode.c
uri.c
uuid.c
vfio-helpers.c lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00