diff options
Diffstat (limited to 'results/classifier/118/performance/1790460')
| -rw-r--r-- | results/classifier/118/performance/1790460 | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/results/classifier/118/performance/1790460 b/results/classifier/118/performance/1790460 new file mode 100644 index 000000000..509cd5d52 --- /dev/null +++ b/results/classifier/118/performance/1790460 @@ -0,0 +1,66 @@ +performance: 0.837 +debug: 0.544 +graphic: 0.526 +virtual: 0.472 +hypervisor: 0.449 +device: 0.441 +network: 0.429 +ppc: 0.425 +socket: 0.405 +user-level: 0.393 +semantic: 0.375 +vnc: 0.365 +architecture: 0.348 +PID: 0.337 +peripherals: 0.332 +TCG: 0.327 +kernel: 0.327 +x86: 0.321 +boot: 0.320 +register: 0.310 +files: 0.310 +risc-v: 0.296 +i386: 0.293 +assembly: 0.272 +permissions: 0.272 +mistranslation: 0.257 +arm: 0.255 +VMM: 0.246 +KVM: 0.192 + +-icount,sleep=off mode is broken (target slows down or hangs) + +QEMU running with options "-icount,sleep=off -rtc clock=vm" doesn't execute emulation at maximum possible speed. +Target virtual clock may run faster or slower than realtime clock by N times, where N value depends on various unrelated conditions (i.e. random from the user point of view). The worst case is when target hangs (hopefully, early in booting stage). +Example scenarios I've described here: http://lists.nongnu.org/archive/html/qemu-discuss/2018-08/msg00102.html + +QEMU process just sleeps most of the time (polling, waiting some condition, etc.). I've tried to debug issue and came to 99% conclusion that there are racing somewhere in qemu internals. + +The feature is broken since v2.6.0 release. +Bad commit is 281b2201e4e18d5b9a26e1e8d81b62b5581a13be by Pavel Dovgalyuk, 03/10/2016 05:56 PM: + + icount: remove obsolete warp call + + qemu_clock_warp call in qemu_tcg_wait_io_event function is not needed + anymore, because it is called in every iteration of main_loop_wait. + + Reviewed-by: Paolo Bonzini <email address hidden> + + Signed-off-by: Pavel Dovgalyuk <email address hidden> + Message-Id: <20160310115603.4812.67559.stgit@PASHA-ISP> + Signed-off-by: Paolo Bonzini <email address hidden> + +I've reverted commit to all major releases and latest git master branch. Issue was fixed for all of them. My adaptation is trivial: just restoring removed function call before "qemu_cond_wait(...)" line. + +I'm sure following bugs are just particular cases of the issue: #1774677, #1653063 . + +This modification also fixes issue: +https://git.greensocs.com/qemu/qbox/commit/a8ed106032e375e715a531d6e93e4d9ec295dbdb +Although I tested it only on v2.12.0 and didn't noticed performance improvement. + +Long-term testing showed that my trivial adaptation didn't fixed issue and I sticked to modification from QBox. It didn't failed yet. +And yes, issue still relevant to current master branch. + +I think we fixed this bug in commit 013aabdc665e4256b38d which would have been in the 3.1.0 release (this is why we closed #1774677, which as you say is the same issue). + + |