[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] d73abd: replay: global variables and function
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] d73abd: replay: global variables and function stubs |
Date: |
Fri, 06 Nov 2015 04:30:06 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: d73abd6dcc105fb5cacc34716046fca63132a264
https://github.com/qemu/qemu/commit/d73abd6dcc105fb5cacc34716046fca63132a264
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M Makefile.objs
A docs/replay.txt
A include/sysemu/replay.h
M qapi-schema.json
A replay/Makefile.objs
A replay/replay.c
M stubs/Makefile.objs
A stubs/replay-user.c
A stubs/replay.c
Log Message:
-----------
replay: global variables and function stubs
This patch adds global variables, defines, function declarations,
and function stubs for deterministic VM replay used by external modules.
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: c92079f45fec0bc6a2757aa3783dd9b0604089ba
https://github.com/qemu/qemu/commit/c92079f45fec0bc6a2757aa3783dd9b0604089ba
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M replay/Makefile.objs
A replay/replay-internal.c
A replay/replay-internal.h
Log Message:
-----------
replay: internal functions for replay log
This patch adds functions to perform read and write operations
with replay log.
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: c16861ef1b7b27803b4c068ef778ba0f80fba1c2
https://github.com/qemu/qemu/commit/c16861ef1b7b27803b4c068ef778ba0f80fba1c2
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M replay/replay-internal.c
M replay/replay-internal.h
Log Message:
-----------
replay: introduce mutex to protect the replay log
This mutex will protect read/write operations for replay log.
Using mutex is necessary because most of the events consist of
several fields stored in the log. The mutex will help to avoid races.
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: 26bc60ac82f88d14e65be5387eb4a136edf94f1b
https://github.com/qemu/qemu/commit/26bc60ac82f88d14e65be5387eb4a136edf94f1b
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M include/sysemu/replay.h
M replay/replay-internal.c
M replay/replay-internal.h
M replay/replay.c
Log Message:
-----------
replay: introduce icount event
This patch adds icount event to the replay subsystem. This event corresponds
to execution of several instructions and used to synchronize input events
in the replay phase.
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: 56c0269a9ec105d3848d9f900b5e38e6b35e2478
https://github.com/qemu/qemu/commit/56c0269a9ec105d3848d9f900b5e38e6b35e2478
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M cpu-exec.c
M include/exec/exec-all.h
M translate-all.c
Log Message:
-----------
cpu-exec: allow temporary disabling icount
This patch is required for deterministic replay to generate an exception
by trying executing an instruction without changing icount.
It adds new flag to TB for disabling icount while translating it.
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 8b42704441865611a5ee241ac9fc5cabc47a079b
https://github.com/qemu/qemu/commit/8b42704441865611a5ee241ac9fc5cabc47a079b
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-05 (Thu, 05 Nov 2015)
Changed paths:
M cpus.c
M include/sysemu/replay.h
M replay/replay.c
Log Message:
-----------
cpu: replay instructions sequence
This patch adds calls to replay functions into the icount setup block.
In record mode number of executed instructions is written to the log.
In replay mode number of istructions to execute is taken from the replay log.
When replayed instructions counter is expired qemu_notify_event()
function is called to wake up the iothread.
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: 6f0609697f3670bf755a91477487507a8ffee471
https://github.com/qemu/qemu/commit/6f0609697f3670bf755a91477487507a8ffee471
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M cpu-exec.c
M include/sysemu/replay.h
M replay/replay-internal.h
M replay/replay.c
M stubs/replay-user.c
Log Message:
-----------
replay: interrupts and exceptions
This patch includes modifications of common cpu files. All interrupts and
exceptions occured during recording are written into the replay log.
These events allow correct replaying the execution by kicking cpu thread
when one of these events is found in the log.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: c0c071d05279ec1429352200affc5c70bb4e5980
https://github.com/qemu/qemu/commit/c0c071d05279ec1429352200affc5c70bb4e5980
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M include/sysemu/replay.h
M replay/Makefile.objs
A replay/replay-events.c
M replay/replay-internal.h
Log Message:
-----------
replay: asynchronous events infrastructure
This patch adds module for saving and replaying asynchronous events.
These events include network packets, keyboard and mouse input,
USB packets, thread pool and bottom halves callbacks.
All events are stored in the queue to be processed at synchronization points
such as beginning of TB execution, or checkpoint in the iothread.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 8eda206e09089914006bfbdd71467d5246c06e4a
https://github.com/qemu/qemu/commit/8eda206e09089914006bfbdd71467d5246c06e4a
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M cpus.c
M include/sysemu/replay.h
M qemu-timer.c
M replay/Makefile.objs
M replay/replay-internal.h
A replay/replay-time.c
M stubs/replay.c
Log Message:
-----------
replay: recording and replaying clock ticks
Clock ticks are considered as the sources of non-deterministic data for
virtual machine. This patch implements saving the clock values when they
are acquired (virtual, host clock).
When replaying the execution corresponding values are read from log and
transfered to the module, which wants to read the values.
Such a design required the clock polling to be synchronized. Sometimes
it is not true - e.g. when timeouts for timer lists are checked. In this case
we use a cached value of the clock, passing it to the client code.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: b60c48a7019614902f2debe4d4181ec8cfa60e0d
https://github.com/qemu/qemu/commit/b60c48a7019614902f2debe4d4181ec8cfa60e0d
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M include/sysemu/replay.h
M replay/replay-internal.h
M replay/replay.c
M vl.c
Log Message:
-----------
replay: shutdown event
This patch records and replays simulator shutdown event.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: efab87cf79077a9624f675fc5fc8f034eaedfe4d
https://github.com/qemu/qemu/commit/efab87cf79077a9624f675fc5fc8f034eaedfe4d
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M cpus.c
M main-loop.c
Log Message:
-----------
icount: improve counting for record/replay
icount_warp_rt function is called by qemu_clock_warp and as
callback of icount_warp timer. This patch adds call to qemu_clock_warp
into main_loop_wait function, because icount warp may be missed
in record/replay mode, when CPU is sleeping.
This patch also disables of calling this function by timer, because
it is not needed after making modifications of main_loop_wait.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 8bd7f71d794b93ce027b856f5b79a98f4f82e44c
https://github.com/qemu/qemu/commit/8bd7f71d794b93ce027b856f5b79a98f4f82e44c
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M cpus.c
M include/sysemu/replay.h
M qemu-timer.c
M replay/replay-internal.h
M replay/replay.c
M stubs/replay.c
M vl.c
Log Message:
-----------
replay: checkpoints
This patch introduces checkpoints that synchronize cpu thread and iothread.
When checkpoint is met in the code all asynchronous events from the queue
are executed.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: df281b80b9ecba65d85795aa738c29e5b94d5ef1
https://github.com/qemu/qemu/commit/df281b80b9ecba65d85795aa738c29e5b94d5ef1
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M async.c
M include/block/aio.h
Log Message:
-----------
bottom halves: introduce bh call function
This patch introduces aio_bh_call function. It is used to execute
bottom halves as callbacks without adding them to the queue.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 8a354bd935a800dd2d98ac8f30707e2912c80ae6
https://github.com/qemu/qemu/commit/8a354bd935a800dd2d98ac8f30707e2912c80ae6
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M hw/core/ptimer.c
M include/sysemu/replay.h
M replay/replay-events.c
M replay/replay-internal.h
Log Message:
-----------
replay: ptimer
This patch adds deterministic replay for hardware periodic countdown timers.
ptimer uses bottom halves layer to execute such an asynchronous callback.
We put this callback into the replay queue instead of bottom halves one.
When checkpoint is met by main loop thread, the replay queue is processed
and callback is executed. Binding callback moment to one of the checkpoints
makes it deterministic.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 7615936ebf4e60c4565268a30df2356c841526f8
https://github.com/qemu/qemu/commit/7615936ebf4e60c4565268a30df2356c841526f8
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M exec.c
M include/sysemu/replay.h
M replay/replay-internal.h
M replay/replay.c
M stubs/replay.c
M vl.c
Log Message:
-----------
replay: initialization and deinitialization
This patch introduces the functions for enabling the record/replay and for
freeing the resources when simulator closes.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 0194749ac4131e1bed8e166c5d5cf541678ef204
https://github.com/qemu/qemu/commit/0194749ac4131e1bed8e166c5d5cf541678ef204
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M hw/bt/hci.c
M include/qapi/qmp/qerror.h
M include/sysemu/replay.h
M replay/replay.c
M vl.c
Log Message:
-----------
replay: replay blockers for devices
Some devices are not supported by record/replay subsystem.
This patch introduces replay blocker which denies starting record/replay
if such devices are included into the configuration.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 4c27b859722089e0270fd4f41b4b3c63b6647439
https://github.com/qemu/qemu/commit/4c27b859722089e0270fd4f41b4b3c63b6647439
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M qemu-options.hx
M replay/replay.c
M vl.c
Log Message:
-----------
replay: command line options
This patch introduces command line options for enabling recording or replaying
virtual machine behavior. These options are added to icount command line
parameter. They include 'rr' which switches between record and replay
and 'rrfile' for specifying the filename for replay log.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: ee312992a323530ea2cda8680f3a34746c72db8f
https://github.com/qemu/qemu/commit/ee312992a323530ea2cda8680f3a34746c72db8f
Author: Pavel Dovgalyuk <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M include/sysemu/replay.h
M include/ui/input.h
M replay/Makefile.objs
M replay/replay-events.c
A replay/replay-input.c
M replay/replay-internal.h
M ui/input.c
Log Message:
-----------
replay: recording of the user input
This records user input (keyboard and mouse events) in record mode and replays
these input events in replay mode.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Commit: 9319738080faeb09876ce2017fcaea4937c475ee
https://github.com/qemu/qemu/commit/9319738080faeb09876ce2017fcaea4937c475ee
Author: Peter Maydell <address@hidden>
Date: 2015-11-06 (Fri, 06 Nov 2015)
Changed paths:
M Makefile.objs
M async.c
M cpu-exec.c
M cpus.c
A docs/replay.txt
M exec.c
M hw/bt/hci.c
M hw/core/ptimer.c
M include/block/aio.h
M include/exec/exec-all.h
M include/qapi/qmp/qerror.h
A include/sysemu/replay.h
M include/ui/input.h
M main-loop.c
M qapi-schema.json
M qemu-options.hx
M qemu-timer.c
A replay/Makefile.objs
A replay/replay-events.c
A replay/replay-input.c
A replay/replay-internal.c
A replay/replay-internal.h
A replay/replay-time.c
A replay/replay.c
M stubs/Makefile.objs
A stubs/replay-user.c
A stubs/replay.c
M translate-all.c
M ui/input.c
M vl.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream-replay' into
staging
So here it is, let's see what happens.
# gpg: Signature made Fri 06 Nov 2015 09:30:34 GMT using RSA key ID 78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>"
# gpg: aka "Paolo Bonzini <address@hidden>"
* remotes/bonzini/tags/for-upstream-replay:
replay: recording of the user input
replay: command line options
replay: replay blockers for devices
replay: initialization and deinitialization
replay: ptimer
bottom halves: introduce bh call function
replay: checkpoints
icount: improve counting for record/replay
replay: shutdown event
replay: recording and replaying clock ticks
replay: asynchronous events infrastructure
replay: interrupts and exceptions
cpu: replay instructions sequence
cpu-exec: allow temporary disabling icount
replay: introduce icount event
replay: introduce mutex to protect the replay log
replay: internal functions for replay log
replay: global variables and function stubs
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/3aa88b31290c...9319738080fa
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] d73abd: replay: global variables and function stubs,
GitHub <=