summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1797033
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/launchpad-without-comments/1797033')
-rw-r--r--results/scraper/launchpad-without-comments/17970339
1 files changed, 9 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1797033 b/results/scraper/launchpad-without-comments/1797033
new file mode 100644
index 000000000..eaba56983
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/1797033
@@ -0,0 +1,9 @@
+Running with -rtc clock=vm,base=<datetime> introduces arbitrary base shift at guest startup
+
+When specifying 'base' for RTC to start with, it has incorrect implementation in combination with clock=vm.
+
+I inspected source code. This is because it uses host clock (qemu_time() function return value) as reference with 'rtc_date_offset' operations across several places in code before guest execution starts, which has no relevance with clock=vm.
+
+It works in vast majority of cases only thanks to combination of some luck and fast execution of qemu initialization phase relative to host real time (i.e. multiple calls of qemu_time() returns same value). But if qemu execution is being slow down by high CPU load on host or started just before value of second changes, it may accumulate at least 1 second (and in hard circumstances even 2+ seconds) of delay from specified base datetime before guest becomes ready to start.
+
+This behavior breaks determinism of guest execution in icount mode. (Even if guest doesn't cares about precise time, just one second shift may trigger such chain of changes which accumulates significant difference in guest state at the moment when guest OS finishes booting.)
\ No newline at end of file