mirror of https://gitlab.com/qemu-project/qemu
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Replaying even trivial s390x kernels hangs, because:
- cpu_post_load() fires the TOD timer immediately.
- s390_tod_load() schedules work for firing the TOD timer.
- If rr loop sees work and then timer, we get one timer expiration.
- If rr loop sees timer and then work, we get two timer expirations.
- Record and replay may diverge due to this race.
- In this particular case divergence makes replay loop spin: it sees that
TOD timer has expired, but cannot invoke its callback, because there
is no recorded CHECKPOINT_CLOCK_VIRTUAL.
- The order in which rr loop sees work and timer depends on whether
and when rr loop wakes up during load_snapshot().
- rr loop may wake up after the main thread kicks the CPU and drops
the BQL, which may happen if it calls, e.g., qemu_cond_wait_bql().
Firing TOD timer twice is duplicate work, but it was introduced
intentionally in commit
|
2 days ago | |
|---|---|---|
| .. | ||
| aio-posix.c | 2 months ago | |
| aio-posix.h | 3 weeks ago | |
| aio-wait.c | 3 weeks ago | |
| aio-win32.c | 2 months ago | |
| aiocb.c | 3 weeks ago | |
| async.c | 3 weeks ago | |
| atomic64.c | 4 years ago | |
| base64.c | ||
| bitmap.c | 3 years ago | |
| bitops.c | 3 years ago | |
| block-helpers.c | 1 year ago | |
| block-helpers.h | 1 year ago | |
| buffer.c | ||
| bufferiszero.c | 2 years ago | |
| cacheflush.c | 3 months ago | |
| chardev_open.c | 2 years ago | |
| compatfd.c | 4 years ago | |
| coroutine-sigaltstack.c | 2 years ago | |
| coroutine-ucontext.c | 2 years ago | |
| coroutine-wasm.c | 8 months ago | |
| coroutine-windows.c | 3 years ago | |
| cpuinfo-aarch64.c | 1 year ago | |
| cpuinfo-i386.c | 4 months ago | |
| cpuinfo-loongarch.c | 2 years ago | |
| cpuinfo-ppc.c | 1 year ago | |
| cpuinfo-riscv.c | 1 year ago | |
| crc-ccitt.c | ||
| crc32c.c | 3 years ago | |
| cutils.c | 1 year ago | |
| dbus.c | ||
| defer-call.c | 2 years ago | |
| drm.c | ||
| envlist.c | 1 year ago | |
| error-report.c | 2 years ago | |
| error.c | 4 months ago | |
| event.c | 7 months ago | |
| event_notifier-posix.c | 4 months ago | |
| event_notifier-win32.c | 4 years ago | |
| fdmon-epoll.c | 2 months ago | |
| fdmon-io_uring.c | 2 months ago | |
| fdmon-poll.c | 2 months ago | |
| fifo8.c | 1 year ago | |
| filemonitor-inotify.c | 2 years ago | |
| filemonitor-stub.c | ||
| getauxval.c | 1 year ago | |
| guest-random.c | 2 years ago | |
| hbitmap.c | 1 year ago | |
| hexdump.c | 2 months ago | |
| host-utils.c | 4 years ago | |
| id.c | ||
| int128.c | 3 years ago | |
| interval-tree.c | 2 years ago | |
| iov.c | 10 months ago | |
| iova-tree.c | 11 months ago | |
| keyval.c | 11 months ago | |
| lockcnt.c | 7 months ago | |
| log.c | 1 month ago | |
| main-loop.c | 3 weeks ago | |
| memalign.c | 4 years ago | |
| memfd.c | 12 months ago | |
| meson.build | 7 months ago | |
| mmap-alloc.c | 3 years ago | |
| module.c | 11 months ago | |
| notify.c | 2 years ago | |
| nvdimm-utils.c | ||
| osdep.c | 2 years ago | |
| oslib-posix.c | 3 months ago | |
| oslib-win32.c | 2 weeks ago | |
| path.c | ||
| qdist.c | 2 years ago | |
| qemu-co-shared-resource.c | 1 year ago | |
| qemu-co-timeout.c | 3 weeks ago | |
| qemu-config.c | 11 months ago | |
| qemu-coroutine-io.c | 3 years ago | |
| qemu-coroutine-lock.c | 3 weeks ago | |
| qemu-coroutine-sleep.c | 3 weeks ago | |
| qemu-coroutine.c | 3 weeks ago | |
| qemu-option.c | 11 months ago | |
| qemu-print.c | ||
| qemu-progress.c | 4 years ago | |
| qemu-sockets.c | 8 months ago | |
| qemu-thread-common.h | 2 months ago | |
| qemu-thread-posix.c | 7 months ago | |
| qemu-thread-win32.c | 7 months ago | |
| qemu-timer-common.c | ||
| qemu-timer.c | 2 days ago | |
| qht.c | 9 months ago | |
| qsp.c | 2 years ago | |
| qtree.c | 3 years ago | |
| range.c | 2 years ago | |
| rcu.c | 3 months ago | |
| readline.c | 2 years ago | |
| reserved-region.c | 2 years ago | |
| s390x_pci_mmio.c | 8 months ago | |
| selfmap.c | 2 years ago | |
| stats64.c | 3 years ago | |
| sys_membarrier.c | ||
| systemd.c | 3 years ago | |
| thread-context.c | 9 months ago | |
| thread-pool.c | 3 weeks ago | |
| throttle.c | 3 weeks ago | |
| timed-average.c | 1 year ago | |
| trace-events | 2 months ago | |
| trace.h | ||
| transactions.c | 4 years ago | |
| unicode.c | ||
| userfaultfd.c | 1 year ago | |
| uuid.c | 2 years ago | |
| vfio-helpers.c | 1 week ago | |
| vhost-user-server.c | 3 weeks ago | |
| yank.c | 2 years ago | |