mirror_qemu/tests
Pavel Dovgalyuk dcb1578069 util/qemu-timer: refactor deadline calculation for external timers
icount-based record/replay uses qemu_clock_deadline_ns_all to measure
the period until vCPU may be interrupted.
This function takes in account the virtual timers, because they belong
to the virtual devices that may generate interrupt request or affect
the virtual machine state.
However, there are a subset of virtual timers, that are marked with
'external' flag. These do not change the virtual machine state and
only based on virtual clock. Calculating the deadling using the external
timers breaks the determinism, because they do not belong to the replayed
part of the virtual machine.
This patch fixes the deadline calculation for this case by adding
new parameter for skipping the external timers when it is needed.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>

--

v2 changes:
 - added new parameter for timer attribute mask
Message-Id: <156404426682.18669.17014100602930969222.stgit@pasha-Precision-3630-Tower>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-08-20 17:26:21 +02:00
..
acceptance i386: Add Cascadelake-Server-v2 CPU model 2019-07-05 17:12:30 -03:00
data tests/rebuild-expected-aml.sh: blow out difflist 2019-06-16 16:44:44 -04:00
decode decodetree: Allow !function with no input bits 2019-08-19 08:03:41 -07:00
docker tests/docker: Refresh APT cache before installing new packages on Debian 2019-07-23 17:19:11 +01:00
fp softfloat: Support float_round_to_odd more places 2019-02-26 14:08:03 +00:00
guest-debug tests/guest-debug: fix scoping of failcount 2018-11-13 10:47:59 +00:00
image-fuzzer
keys
libqos tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
migration python/qemu: split QEMUMachine out from underneath __init__.py 2019-07-01 19:02:10 -03:00
multiboot tests/multiboot: Fix load address of test kernels 2019-07-30 12:25:43 +02:00
perf/block/qcow2 tests/perf: Test lseek influence on qcow2 block-status 2019-06-04 15:20:41 +02:00
qapi-schema tests/qapi-schema: Error case tests for features in structs 2019-06-12 18:35:26 +02:00
qemu-iotests iotests: Fix 141 when run with qed 2019-08-19 17:13:26 +02:00
rocker
tcg target/mips: tests/tcg: Fix target configurations for MSA tests 2019-08-19 19:53:37 +02:00
uefi-test-tools Clean up a few header guard symbols 2019-06-12 13:20:20 +02:00
vm Makefile: Rename the 'vm-test' target as 'vm-help' 2019-07-04 19:23:07 +01:00
vmstate-static-checker-data
.gitignore tests/.gitignore: ignore test-qapi-emit-events.[ch] for in-tree builds 2019-03-14 16:02:13 +01:00
Makefile.include tests: Run the iotests during "make check" again 2019-08-17 09:03:35 +02:00
ac97-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
acpi-utils.c tests: acpi: add acpi_find_rsdp_address_uefi() helper 2019-05-20 18:40:02 -04:00
acpi-utils.h tests: acpi: add acpi_find_rsdp_address_uefi() helper 2019-05-20 18:40:02 -04:00
ahci-test.c ahci-test: Drop dependence on global_qtest 2019-03-12 07:40:59 +01:00
atomic64-bench.c tests: use g_usleep instead of rem = sleep(time) 2019-01-14 14:52:30 +00:00
atomic_add-bench.c tests: use g_usleep instead of rem = sleep(time) 2019-01-14 14:52:30 +00:00
benchmark-crypto-cipher.c crypto: expand algorithm coverage for cipher benchmark 2018-10-24 19:03:37 +01:00
benchmark-crypto-hash.c tests/crypto: Use the IEC binary prefix definitions 2018-07-02 15:41:17 +02:00
benchmark-crypto-hmac.c tests/crypto: Use the IEC binary prefix definitions 2018-07-02 15:41:17 +02:00
bios-tables-test-allowed-diff.h q35: update DSDT 2019-06-16 16:44:44 -04:00
bios-tables-test.c tests: acpi: do not skip tests when IASL is not installed 2019-07-12 10:56:26 -04:00
boot-order-test.c tests/boot-order: Make test independent of global_qtest 2019-01-22 05:14:32 +01:00
boot-sector.c
boot-sector.h
boot-serial-test.c s390-bios: Factor finding boot device out of virtio code path 2019-04-12 12:40:35 +02:00
cdrom-test.c tests/cdrom-test: only include isapc cdrom test when g_test_slow() 2019-02-22 09:32:32 +00:00
check-block-qdict.c tests: fix crumple/recursive leak 2018-08-15 08:12:19 +02:00
check-block.sh tests: Run the iotests during "make check" again 2019-08-17 09:03:35 +02:00
check-qdict.c tests: Move qdict-test-data.txt to tests/data/qobject/ 2019-03-07 22:05:54 +01:00
check-qjson.c json: Fix % handling when not interpolating 2019-01-24 15:20:59 +01:00
check-qlist.c
check-qlit.c
check-qnull.c
check-qnum.c
check-qobject.c qstring: Move qstring_from_substr()'s @end one to the right 2018-07-28 09:09:58 +02:00
check-qom-interface.c qom: make interface types abstract 2018-12-11 15:45:22 -02:00
check-qom-proplist.c tests/qom-proplist: check class properties iterator 2018-10-05 16:27:09 +04:00
check-qstring.c qstring: Move qstring_from_substr()'s @end one to the right 2018-07-28 09:09:58 +02:00
cpu-plug-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
crypto-tls-psk-helpers.c crypto: Implement TLS Pre-Shared Keys (PSK). 2018-07-03 13:04:38 +01:00
crypto-tls-psk-helpers.h Supply missing header guards 2019-06-12 13:20:21 +02:00
crypto-tls-x509-helpers.c tests: call qcrypto_init instead of gnutls_global_init 2018-07-24 17:33:39 +01:00
crypto-tls-x509-helpers.h Supply missing header guards 2019-06-12 13:20:21 +02:00
device-introspect-test.c tests/device-introspect: Use qtest_init() instead of qtest_start() 2019-05-21 10:00:41 +02:00
device-plug-test.c tests/device-plug: Add PHB unplug request test for spapr 2019-02-26 09:21:25 +11:00
display-vga-test.c tests/display-vga: Enable virtio-vga test 2019-01-11 11:45:00 +01:00
drive_del-test.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
ds1338-test.c libqos: i2c: move address into QI2CDevice 2019-06-03 14:03:02 +02:00
e1000-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
e1000e-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
eepro100-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
endianness-test.c tests/endianesss: Make test independent of global_qtest 2019-01-22 05:14:32 +01:00
es1370-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
fdc-test.c tests: Remove (mostly) useless architecture checks 2019-03-06 10:10:36 +01:00
fw_cfg-test.c tests: fw_cfg: add 'splash-time' test case 2019-05-23 14:10:31 +02:00
hd-geo-test.c tests/hd-geo-test: Use qtest_init() instead of qtest_start() 2019-05-21 10:00:46 +02:00
hexloader-test.c tests/hexloader-test: Don't pass -nographic to the QEMU under test 2019-01-22 06:26:32 +01:00
i440fx-test.c tests/libqos: rename qpci_init_pc and qpci_init_spapr functions 2019-03-07 16:50:04 +01:00
i82801b11-test.c
ide-test.c tests/ide-test: Make test independent of global_qtest 2019-05-08 16:59:28 +02:00
intel-hda-test.c
io-channel-helpers.c
io-channel-helpers.h Normalize position of header guard 2019-06-12 13:20:20 +02:00
ioh3420-test.c
iothread.c
iothread.h
ipmi-bt-test.c tests: Remove (mostly) useless architecture checks 2019-03-06 10:10:36 +01:00
ipmi-kcs-test.c tests: Remove (mostly) useless architecture checks 2019-03-06 10:10:36 +01:00
ipoctal232-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
ivshmem-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
libqtest.c tests/libqtest: Make qmp_assert_success() independent from global_qtest 2019-08-15 19:24:10 +02:00
libqtest.h tests/libqtest: Make qmp_assert_success() independent from global_qtest 2019-08-15 19:24:10 +02:00
m25p80-test.c libqtest: Replace qtest_startf() by qtest_initf() 2018-08-16 08:42:06 +02:00
m48t59-test.c tests: Do not use "\n" in g_test_message() strings 2019-03-07 22:16:22 +01:00
machine-none-test.c tests/machine-none: Test recent MIPS cpus 2019-07-02 14:17:15 +02:00
megasas-test.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
microbit-test.c tests/microbit-test: Add tests for nRF51 NVMC 2019-02-01 15:32:17 +00:00
migration-test.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
ne2000-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
numa-test.c tests/numa-test: Use qtest_init() instead of qtest_start() 2019-05-21 10:00:32 +02:00
nvme-test.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
pca9552-test.c libqos: i2c: move address into QI2CDevice 2019-06-03 14:03:02 +02:00
pci-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pcnet-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pflash-cfi02-test.c hw/block/pflash_cfi02: Implement erase suspend/resume 2019-07-02 02:34:55 +02:00
pkix_asn1_tab.c
pnv-xscom-test.c ppc/pnv: activate XSCOM tests for POWER9 2019-03-12 14:33:05 +11:00
prom-env-test.c Suppress test warnings about missing Spectre/Meltdown mitigations with TCG 2019-03-12 16:07:14 +11:00
ptimer-test-stubs.c util/qemu-timer: refactor deadline calculation for external timers 2019-08-20 17:26:21 +02:00
ptimer-test.c util/qemu-timer: refactor deadline calculation for external timers 2019-08-20 17:26:21 +02:00
ptimer-test.h
pvpanic-test.c tests/pvpanic: Make the pvpanic test independent of global_qtest 2018-12-17 15:36:40 +01:00
pxe-test.c Suppress test warnings about missing Spectre/Meltdown mitigations with TCG 2019-03-12 16:07:14 +11:00
q35-test.c tests/q35-test: Make test independent of global_qtest 2019-05-21 10:00:27 +02:00
qht-bench.c tests: use g_usleep instead of rem = sleep(time) 2019-01-14 14:52:30 +00:00
qmp-cmd-test.c tests/qmp-cmd-test: Use qtest_init() instead of qtest_start() 2019-05-08 16:59:28 +02:00
qmp-test.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
qom-test.c tests/qom-test: Use qtest_init() instead of qtest_start() 2019-05-21 10:00:37 +02:00
qos-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
rcutorture.c
requirements.txt BootLinuxSshTest: Test some userspace commands on Malta 2019-05-26 17:45:02 +02:00
rtas-test.c tests/libqos: embed allocators instead of malloc-ing them separately 2019-03-07 17:28:07 +01:00
rtc-test.c tests: Do not use "\n" in g_test_message() strings 2019-03-07 22:16:22 +01:00
rtl8139-test.c - qtest fixes 2019-03-08 16:31:34 +00:00
sdhci-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
socket-helpers.c
socket-helpers.h Supply missing header guards 2019-06-12 13:20:21 +02:00
spapr-phb-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
tco-test.c tests/tco: Make test independent of global_qtest 2019-05-08 16:59:28 +02:00
test-aio-multithread.c tests: Do not use "\n" in g_test_message() strings 2019-03-07 22:16:22 +01:00
test-aio.c
test-arm-mptimer.c tests/test-arm-mptimer: Don't leak string memory 2018-12-14 13:30:54 +00:00
test-authz-list.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-authz-listfile.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-authz-pam.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-authz-simple.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-base64.c
test-bdrv-drain.c Block layer patches: 2019-08-16 16:43:46 +01:00
test-bdrv-graph-mod.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
test-bitcnt.c
test-bitmap.c test-bitmap: add test for bitmap_set 2019-07-19 19:04:49 +02:00
test-bitops.c
test-block-backend.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
test-block-iothread.c mirror: Fix bdrv_has_zero_init() use 2019-08-19 17:13:26 +02:00
test-blockjob-txn.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
test-blockjob.c tests: Set read-zeroes on for null-co driver 2019-08-15 19:23:59 +02:00
test-bufferiszero.c
test-char.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-clone-visitor.c tests: Rename UserDefNativeListUnion to UserDefListUnion 2019-03-05 14:43:11 +01:00
test-coroutine.c tests: Do not use "\n" in g_test_message() strings 2019-03-07 22:16:22 +01:00
test-crypto-afsplit.c
test-crypto-block.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-hmac.c
test-crypto-ivgen.c
test-crypto-pbkdf.c test: execute g_test_run when tests are skipped 2019-01-11 13:57:25 +01:00
test-crypto-secret.c
test-crypto-tlscredsx509.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-crypto-tlssession.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-crypto-xts.c crypto: add testing for unaligned buffers with XTS cipher mode 2018-10-24 19:03:37 +01:00
test-cutils.c cutils: Fix qemu_strtosz() & friends to reject non-finite sizes 2018-12-13 19:10:06 +01:00
test-filter-mirror.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
test-filter-redirector.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
test-hbitmap.c tests/test-hbitmap: test next_zero and _next_dirty_area after truncate 2019-08-16 18:29:43 -04:00
test-hmp.c tests/test-hmp: Use qtest_init() instead of qtest_start() 2019-05-08 16:59:28 +02:00
test-image-locking.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
test-int128.c
test-io-channel-buffer.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-io-channel-command.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-io-channel-file.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-io-channel-socket.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-io-channel-tls.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-io-task.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-iov.c
test-keyval.c hw: Use IEC binary prefix definitions from "qemu/units.h" 2018-07-02 15:41:10 +02:00
test-logging.c
test-mul64.c
test-netfilter.c
test-opts-visitor.c
test-qapi-util.c
test-qdev-global-props.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
test-qdist.c
test-qemu-opts.c hw: Use IEC binary prefix definitions from "qemu/units.h" 2018-07-02 15:41:10 +02:00
test-qga.c qmp: common 'id' handling & make QGA conform to QMP spec 2019-03-18 10:48:06 -05:00
test-qgraph.c tests: test-qgraph: fix a memory leak 2019-03-11 16:33:49 +01:00
test-qht-par.c
test-qht.c qht: drop ht argument from qht iterators 2018-09-26 08:55:54 -07:00
test-qmp-cmds.c tests/qapi-schema: Test for good feature lists in structs 2019-06-12 18:35:17 +02:00
test-qmp-event.c qapi: Generate QAPIEvent stuff into separate files 2019-02-18 14:44:04 +01:00
test-qobject-input-visitor.c tests: Rename UserDefNativeListUnion to UserDefListUnion 2019-03-05 14:43:11 +01:00
test-qobject-output-visitor.c tests: Rename UserDefNativeListUnion to UserDefListUnion 2019-03-05 14:43:11 +01:00
test-rcu-list.c qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
test-rcu-simpleq.c tests: add test-list-simpleq 2018-08-23 18:46:25 +02:00
test-rcu-tailq.c tests: add test-rcu-tailq 2018-08-23 18:46:25 +02:00
test-replication.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
test-shift128.c
test-string-input-visitor.c tests: Fix uninitialized byte in test_visitor_in_fuzz 2019-08-20 17:26:19 +02:00
test-string-output-visitor.c
test-thread-pool.c test-thread-pool: be more reliable 2019-06-03 14:03:00 +02:00
test-throttle.c test-throttle: Fix uninitialized use of burst_length 2019-08-20 17:26:19 +02:00
test-timed-average.c
test-util-filemonitor.c filemon: fix watch IDs to avoid potential wraparound issues 2019-04-02 13:52:02 +01:00
test-util-sockets.c monitor: Replace monitor_init() with monitor_init_{hmp, qmp}() 2019-06-18 08:14:17 +02:00
test-uuid.c
test-visitor-serialization.c
test-vmstate.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
test-write-threshold.c
test-x86-cpuid-compat.c build-sys: remove glib_subprocess check 2018-08-23 18:46:25 +02:00
test-x86-cpuid.c i386: Update new x86_apicid parsing rules with die_offset support 2019-07-05 17:08:03 -03:00
test-xbzrle.c
tmp105-test.c libqos: i2c: move address into QI2CDevice 2019-06-03 14:03:02 +02:00
tpm-crb-swtpm-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
tpm-crb-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
tpm-emu.c tests: Fix signalling race condition in TPM tests 2018-09-07 16:37:47 -04:00
tpm-emu.h Clean up decorations and whitespace around header guards 2019-05-13 08:58:55 +02:00
tpm-tests.c tests/tpm-tests: Use g_test_skip() to mark skipped tests 2019-05-08 16:59:28 +02:00
tpm-tests.h
tpm-tis-swtpm-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
tpm-tis-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
tpm-util.c tests/tpm: Display if swtpm is not found or --tpm2 not supported 2018-10-30 13:53:15 -04:00
tpm-util.h Clean up includes 2018-12-20 10:29:08 +01:00
usb-hcd-ehci-test.c tests/libqos: rename qpci_init_pc and qpci_init_spapr functions 2019-03-07 16:50:04 +01:00
usb-hcd-ohci-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
usb-hcd-uhci-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
usb-hcd-xhci-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
vhost-user-bridge.c libvhost-user: support many virtqueues 2019-07-04 17:00:32 -04:00
vhost-user-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-9p-test.c tests/libqos: Make generic virtio code independent from global_qtest 2019-08-15 19:23:59 +02:00
virtio-blk-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-ccw-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-net-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-rng-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-scsi-test.c tests/libqtest: Make qmp_assert_success() independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-serial-test.c tests/libqtest: Make qtest_qmp_device_add/del independent from global_qtest 2019-08-15 19:24:10 +02:00
virtio-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
vmgenid-test.c tests: acpi: make acpi_fetch_table() take size of fetched table pointer 2019-05-20 18:40:02 -04:00
vmxnet3-test.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
wdt_ib700-test.c