Activity log for bug #1497479

Date Who What changed Old value New value Message
2015-09-18 23:58:53 Pavel Boldin bug added bug
2015-09-19 01:03:16 Pavel Boldin description [ISSUE] QEMU releases 2.3.1 and lower are forgetting to flush TLBs before enabling the global dirty pages log and entering the final stage of saving the VM. [DESCRIPTION] The situation is the following: 1. TLB misses is the only way for page dirtying in the TCG mode. 2. If TLB is hit by a running VM during the execution of the `ram_save_iterate' by migration thread (e.g. if VM is mostly idling) then some pages are missing in the dirty log. 3. These pages are then not migrated during `ram_save_complete'. 4. This makes memory content in a saved VM state differ from the actual VM memory. 5. If the affected area includes some Kernel data structures such as trees or lists this can cause Kernel to Oops after loading the saved state. [SOLUTION] A proposed solution is to flush TLB when `log_global_start' is called. Here is the patch: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1493049/+attachment/4459905/+files/tcg-commit-on-log-global-start.patch [LINKS] Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1493049 [ISSUE] QEMU releases 2.3.1 and lower are forgetting to flush TLBs before enabling the global dirty pages log and entering the final stage of saving the VM. [DESCRIPTION] The situation is the following: 1. TLB misses is the only way for page dirtying in the TCG mode. 2. If TLB is always hit by a running VM code during the execution of the `ram_save_iterate' by migration thread then these pages are missing in the dirty log. The TLB is always hit for instance when the VM is mostly idling and the Kernel only handles APIC timer interrupts. 3. These pages are then missed during `ram_save_complete' stage. 4. This makes memory content in a saved VM state differ from the actual VM memory. 5. If the affected memory pages contain some Kernel data structures these can be corrupted by this memory inconsistency, causing Kernel to Oops after loading the saved state. [SOLUTION] A proposed solution is to flush TLB when `log_global_start' is called. Here is the patch: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1493049/+attachment/4459905/+files/tcg-commit-on-log-global-start.patch [LINKS] Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1493049
2018-09-05 08:48:57 Thomas Huth qemu: status New Incomplete
2018-11-05 04:17:16 Launchpad Janitor qemu: status Incomplete Expired