This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
Makefile.target |1 +
qapi-schema.json | 32
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
From: Paolo Bonzini pbonz...@redhat.com
Subject: [PATCH] cpu-exec: add a new CF_USE_ICOUNT cflag
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/exec/exec-all.h |5 +++--
translate-all.c |3 +++
2 files
Exception index is reset at every entry at every entry into cpu_exec()
function. This may cause missing the exceptions while replaying them.
This patch moves exception_index reset to the locations where they are
processed.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
target-i386/cpu.h |3 +++
target-i386/translate.c | 14 ++
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 015f5b5..ca94f8f 100644
--- a/target-i386/cpu.h
+++ b
In this case, QEMU might longjmp out of cpu-exec.c and miss the final
cleanup in cpu_exec_nocache. Do this manually through a new compile
flag. This is important once we add no-icount translations.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
From: Paolo Bonzini pbonz...@redhat.com
Subject: [PATCH] translate: check cflags instead of use_icount global
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
target-alpha/translate.c|8 ---
target-arm/translate-a64.c
, or checkpoint in the iothread.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-events.c | 217 ++
replay/replay-internal.h | 27 ++
replay/replay.h |4 +
4 files changed
simulator-specific
actions. That is why we added new clock which is recorded and
replayed when needed.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/qemu/timer.h |7 +++
qemu-timer.c |2 ++
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/include
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
From: Paolo Bonzini pbonz...@redhat.com
Subject: [PATCH] gen-icount: check cflags instead of use_icount global
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/exec/gen-icount.h |6 +++---
target-alpha/translate.c
This patch adds saving and replaying warping parameters in record and replay
modes. These parameters affect on virtual clock values and therefore should
be deterministic.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c | 18 +-
1 files changed, 9 insertions
This patch replaces calling of get_clock_realtime() everywhere
except the timer module. All calls are replaced with host clock requests.
Patch also replaces get_clock() calls with realtime clock requests.
Usage of this interface simplifies implementation of record/replay.
Signed-off-by: Pavel
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
lead to non-determinism.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
hw/timer/mc146818rtc.c | 10
hw/timer/pl031.c | 10
include/qemu-common.h|1
replay/replay-internal.h |4 ++
replay/replay-time.c | 112
This patch records and replays simulator shutdown event.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/sysemu/sysemu.h |1 +
replay/replay-internal.h |2 ++
replay/replay.c | 11 +++
replay/replay.h |5 +
vl.c
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 pavel.dovga...@ispras.ru
---
block.c | 11 +++
cpus.c
This patch introduces command line options for enabling recording or replaying
virtual machine behavior. -record option starts recording of the execution
and saves it into the log, specified with fname parameter. -replay option
is intended for replaying previously saved log.
Signed-off-by: Pavel
This patch introduces bottom half event for replay queue. It saves the events
into the queue and process them at the checkpoints and instructions execution.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 46
This patch adds identifier to aio requests. ID is used for creating bottom
halves and identifying them while replaying.
The patch also introduces several functions that make possible replaying
of the aio requests.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c
This patch modifies thread pool to allow replaying asynchronous thread tasks
synchronously in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block/raw-posix.c |6 -
block/raw-win32.c |4 +++-
include/block/thread-pool.h |4
This patch introduces the functions for enabling the record/replay and for
freeing the resources when simulator closes.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c |2 -
exec.c |1
replay/replay-internal.h |2 +
replay
This records user input (keyboard and mouse events) in record mode and replays
these input events in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/ui/input.h |2 +
replay/Makefile.objs |1
replay/replay-events.c | 48
No, it worked well and I deleted _nocache version of that function.
But I still need _raw one to get the instructions counter.
Sent using CloudMagic
On вт, Дек 09, 2014 at 8:39 PM, Paolo Bonzini pbonz...@redhat.com wrote:
On 08/12/2014 08:53, Pavel Dovgalyuk wrote:
if (!cpu_can_do_io(cpu
optional features of replay to make patches cleaner
* Minor changes and code cleanup were made
---
Pavel Dovgalyuk (21):
i386: partial revert of interrupt poll fix
replay: global variables and function stubs
sysemu: system functions for replay
replay: internal functions
This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
Makefile.target |1 +
qapi-schema.json | 18 ++
replay
Processing CPU_INTERRUPT_POLL requests in cpu_has_work functions
break the determinism of cpu_exec. This patch is required to make
interrupts processing deterministic.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
This patch adds identifier to aio requests. ID is used for creating bottom
halves and identifying them while replaying.
The patch also introduces several functions that make possible replaying
of the aio requests.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c
Bottom halves in AIO context are stored and removes
in LIFO order. It makes their execution non-deterministic.
This patch replaces the stack with queue to preserve the
order of bottom halves processing.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 25
This patch introduces command line options for enabling recording or replaying
virtual machine behavior. -record option starts recording of the execution
and saves it into the log, specified with fname parameter. -replay option
is intended for replaying previously saved log.
Signed-off-by: Pavel
This patch introduces the functions for enabling the record/replay and for
freeing the resources when simulator closes.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c |2 -
exec.c |1
replay/replay-internal.c |1
replay/replay
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
This patch introduces bottom half event for replay queue. It saves the events
into the queue and process them at the checkpoints and instructions execution.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 24 +++-
dma-helpers.c
This records user input (keyboard and mouse events) in record mode and replays
these input events in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/ui/input.h |2 +
replay/Makefile.objs |1
replay/replay-events.c | 55
, or checkpoint in the iothread.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-events.c | 228 ++
replay/replay-internal.h | 33 ++-
replay/replay.h |4 +
4 files changed
This patch modifies thread pool to allow replaying asynchronous thread tasks
synchronously in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block/raw-posix.c |6 -
block/raw-win32.c |4 +++-
include/block/thread-pool.h |4
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
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay-internal.c | 16
replay/replay
This patch removes static specifier from several qemu function to make
them visible to the replay module. It also invents several system functions
that will be used by replay.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c |4 ++--
include/exec/exec-all.h
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay-internal.c | 25
lead to non-determinism.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
hw/timer/mc146818rtc.c |3 +
hw/timer/pl031.c |3 +
include/qemu-common.h|1
replay/replay-internal.h |4 +
replay/replay-time.c | 132
This patch records and replays simulator shutdown event.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay-internal.h |2 ++
replay/replay.c | 12
replay/replay.h |5 +
vl.c |1 +
4 files changed, 20
This patch adds functions to perform read and write operations
with replay log.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-internal.c | 141 ++
replay/replay-internal.h | 50
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
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 pavel.dovga...@ispras.ru
---
block.c | 11 ++
cpus.c
This patch records and replays simulator shutdown event.
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay-internal.h |2 ++
replay/replay.c | 12
replay/replay.h |5 +
vl.c
This patch introduces bottom half event for replay queue. It saves the events
into the queue and process them at the checkpoints and instructions execution.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 24 +++-
dma-helpers.c
This patch removes static specifier from several qemu function to make
them visible to the replay module. It also invents several system functions
that will be used by replay.
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c
This patch replaces time() function calls with calls to
qemu_clock_get_ns(QEMU_CLOCK_HOST). It makes such requests deterministic
in record/replay mode of icount.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
vl.c | 12
1 files changed, 8 insertions(+), 4 deletions
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 pavel.dovga...@ispras.ru
---
hw/bt/hci.c |7 +++
include
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
, or checkpoint in the iothread.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-events.c | 229 ++
replay/replay-internal.h | 31 ++
replay/replay.h |6 +
4 files changed
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c
Bottom halves in AIO context are stored and removes
in LIFO order. It makes their execution non-deterministic.
This patch replaces the stack with queue to preserve the
order of bottom halves processing.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 25
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 pavel.dovga...@ispras.ru
---
block.c | 12
cpus.c
This records user input (keyboard and mouse events) in record mode and replays
these input events in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/ui/input.h |2 +
replay/Makefile.objs |1
replay/replay-events.c | 31 +
replay
This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
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
This patch introduces the functions for enabling the record/replay and for
freeing the resources when simulator closes.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c |2 -
exec.c |1
replay/replay-internal.h |2 +
replay
This patch introduces command line options for enabling recording or replaying
virtual machine behavior. -record option starts recording of the execution
and saves it into the log, specified with fname parameter. -replay option
is intended for replaying previously saved log.
Signed-off-by: Pavel
This patch moves typedefs for QemuOpts and related types
to qemu/typedefs.h file.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/qemu/option.h |5 +
include/qemu/typedefs.h |3 +++
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/qemu
and bisectable (as suggested by Kirill
Batuzov)
* Added QMP versions of replay commands (as suggested by Eric Blake)
* Removed some optional features of replay to make patches cleaner
* Minor changes and code cleanup were made
---
Pavel Dovgalyuk (23):
i386: partial revert of interrupt
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 pavel.dovga...@ispras.ru
---
cpus.c
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
This patch adds functions to perform read and write operations
with replay log.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-internal.c | 143 ++
replay/replay-internal.h | 44
Processing CPU_INTERRUPT_POLL requests in cpu_has_work functions
break the determinism of cpu_exec. This patch is required to make
interrupts processing deterministic.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay
This patch adds identifier to aio requests. ID is used for creating bottom
halves and identifying them while replaying.
The patch also introduces several functions that make possible replaying
of the aio requests.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c
This patch modifies thread pool to allow replaying asynchronous thread tasks
synchronously in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block/raw-posix.c |6 -
block/raw-win32.c |4 +++-
include/block/thread-pool.h |4
This patch removes static specifier from several qemu function to make
them visible to the replay module. It also invents several system functions
that will be used by replay.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c |4 ++--
include/exec/exec-all.h
This patch adds identifier to aio requests. ID is used for creating bottom
halves and identifying them while replaying.
The patch also introduces several functions that make possible replaying
of the aio requests.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
This patch fixes icount warp rt timer. It should be based on virtual_rt
clock to be deterministic.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpus.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cpus.c b/cpus.c
index 0c368f2..8787277 100644
This patch modifies thread pool to allow replaying asynchronous thread tasks
synchronously in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block/raw-posix.c |6 -
block/raw-win32.c |4 +++-
include/block/thread-pool.h |4
Processing CPU_INTERRUPT_POLL requests in cpu_has_work functions
break the determinism of cpu_exec. This patch is required to make
interrupts processing deterministic.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
cpu-exec.c
This patch introduces command line options for enabling recording or replaying
virtual machine behavior. -record option starts recording of the execution
and saves it into the log, specified with fname parameter. -replay option
is intended for replaying previously saved log.
Signed-off-by: Pavel
This records user input (keyboard and mouse events) in record mode and replays
these input events in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/ui/input.h |2 +
replay/Makefile.objs |1
replay/replay-events.c | 48
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
:
* Patches are split to be reviewable and bisectable (as suggested by Kirill
Batuzov)
* Added QMP versions of replay commands (as suggested by Eric Blake)
* Removed some optional features of replay to make patches cleaner
* Minor changes and code cleanup were made
---
Pavel Dovgalyuk (21
lead to non-determinism.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
hw/timer/mc146818rtc.c | 10
hw/timer/pl031.c | 10
include/qemu-common.h|1
replay/replay-internal.h |4 ++
replay/replay-time.c | 112
This patch introduces the functions for enabling the record/replay and for
freeing the resources when simulator closes.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block.c |2 -
exec.c |1
replay/replay-internal.h |2 +
replay
This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
Makefile.target |1 +
qapi-schema.json | 32
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.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/replay-internal.c | 14 ++
replay/replay
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
, or checkpoint in the iothread.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-events.c | 217 ++
replay/replay-internal.h | 27 ++
replay/replay.h |4 +
4 files changed
This patch adds functions to perform read and write operations
with replay log.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
replay/Makefile.objs |1
replay/replay-internal.c | 141 ++
replay/replay-internal.h | 50
This patch introduces bottom half event for replay queue. It saves the events
into the queue and process them at the checkpoints and instructions execution.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 46
This patch replaces calling of get_clock_realtime() everywhere
except the timer module. All calls are replaced with host clock requests.
Patch also replaces get_clock() calls with realtime clock requests.
Usage of this interface simplifies implementation of record/replay.
Signed-off-by: Pavel
This patch records and replays simulator shutdown event.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
include/sysemu/sysemu.h |1 +
replay/replay-internal.h |2 ++
replay/replay.c | 11 +++
replay/replay.h |5 +
vl.c
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 pavel.dovga...@ispras.ru
---
block.c | 11 +++
cpus.c
On w64, setjmp is implemented by _setjmp which needs a second parameter.
This parameter should be NULL to allow using longjump from generated code.
This patch replaces all usages of setjmp.h with new header files which
replaces setjmp with _setjmp function on win64 platform.
Signed-off-by: Pavel
)
* Removed some optional features of replay to make patches cleaner
* Minor changes and code cleanup were made
---
Pavel Dovgalyuk (24):
i386: partial revert of interrupt poll fix
replay: global variables and function stubs
sysemu: system functions for replay
replay
This patch adds global variables, defines, functions declarations,
and function stubs for deterministic VM replay used by external modules.
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
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 pbonz...@redhat.com
Signed-off-by: Pavel Dovgalyuk pavel.dovga
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 pavel.dovga...@ispras.ru
---
hw/bt/hci.c |7 +++
include
Bottom halves in AIO context are stored and removes
in LIFO order. It makes their execution non-deterministic.
This patch replaces the stack with queue to preserve the
order of bottom halves processing.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
async.c | 26
This patch modifies thread pool to allow replaying asynchronous thread tasks
synchronously in replay mode.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
block/raw-posix.c |6 -
block/raw-win32.c |4 +++-
include/block/thread-pool.h |4
201 - 300 of 2324 matches
Mail list logo