diff options
Diffstat (limited to 'results/classifier/118/TCG/1565')
| -rw-r--r-- | results/classifier/118/TCG/1565 | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/results/classifier/118/TCG/1565 b/results/classifier/118/TCG/1565 new file mode 100644 index 00000000..d518c5c2 --- /dev/null +++ b/results/classifier/118/TCG/1565 @@ -0,0 +1,94 @@ +TCG: 0.930 +KVM: 0.910 +device: 0.793 +graphic: 0.722 +performance: 0.671 +kernel: 0.625 +network: 0.613 +register: 0.613 +PID: 0.600 +vnc: 0.596 +semantic: 0.590 +socket: 0.568 +files: 0.549 +permissions: 0.545 +ppc: 0.545 +risc-v: 0.484 +architecture: 0.473 +hypervisor: 0.464 +boot: 0.423 +debug: 0.413 +VMM: 0.409 +arm: 0.395 +peripherals: 0.346 +i386: 0.248 +x86: 0.235 +virtual: 0.233 +user-level: 0.208 +mistranslation: 0.201 +assembly: 0.174 +-------------------- +TCG: 0.959 +debug: 0.922 +kernel: 0.557 +KVM: 0.385 +files: 0.105 +user-level: 0.083 +hypervisor: 0.039 +performance: 0.022 +register: 0.021 +PID: 0.014 +architecture: 0.012 +assembly: 0.009 +device: 0.007 +semantic: 0.006 +virtual: 0.004 +VMM: 0.004 +network: 0.002 +graphic: 0.002 +boot: 0.002 +peripherals: 0.002 +risc-v: 0.001 +permissions: 0.001 +vnc: 0.001 +socket: 0.001 +mistranslation: 0.001 +arm: 0.000 +ppc: 0.000 +x86: 0.000 +i386: 0.000 + +s390x TCG migration failure +Description of problem: +We're seeing failures running s390x migration kvm-unit-tests tests with TCG. + +Some initial findings: + +What seems to be happening is that after migration a control block header accessed by the test code is all zeros which causes an unexpected exception. + +I did a bisection which points to c8df4a7aef ("migration: Split save_live_pending() into state_pending_*") as the culprit. +The migration issue persists after applying the fix e264705012 ("migration: I messed state_pending_exact/estimate") on top of c8df4a7aef. + +Applying + +``` +diff --git a/migration/ram.c b/migration/ram.c +index 56ff9cd29d..2dc546cf28 100644 +--- a/migration/ram.c ++++ b/migration/ram.c +@@ -3437,7 +3437,7 @@ static void ram_state_pending_exact(void *opaque, uint64_t max_size, + + uint64_t remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE; + +- if (!migration_in_postcopy()) { ++ if (!migration_in_postcopy() && remaining_size < max_size) { + qemu_mutex_lock_iothread(); + WITH_RCU_READ_LOCK_GUARD() { + migration_bitmap_sync_precopy(rs); +``` +on top fixes or hides the issue. (The comparison was removed by c8df4a7aef.) + +I arrived at this by experimentation, I haven't looked into why this makes a difference. +Steps to reproduce: +1. Run ACCEL=tcg ./run_tests.sh migration-skey-sequential with current QEMU master +2. Repeat until the test fails (doesn't happen every time, but still easy to reproduce) |