Commit 06152b8
migration: prevent migration when VM has poisoned memory
A memory page poisoned from the hypervisor level is no longer readable.
The migration of a VM will crash Qemu when it tries to read the
memory address space and stumbles on the poisoned page with a similar
stack trace:
Program terminated with signal SIGBUS, Bus error.
#0 _mm256_loadu_si256
#1 buffer_zero_avx2
qemu#2 select_accel_fn
qemu#3 buffer_is_zero
qemu#4 save_zero_page
qemu#5 ram_save_target_page_legacy
qemu#6 ram_save_host_page
qemu#7 ram_find_and_save_block
qemu#8 ram_save_iterate
qemu#9 qemu_savevm_state_iterate
qemu#10 migration_iteration_run
qemu#11 migration_thread
qemu#12 qemu_thread_start
To avoid this VM crash during the migration, prevent the migration
when a known hardware poison exists on the VM.
Signed-off-by: William Roche <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>1 parent 39a6e4f commit 06152b8
File tree
4 files changed
+28
-0
lines changed- accel
- kvm
- stubs
- include/sysemu
- migration
4 files changed
+28
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1119 | 1119 | | |
1120 | 1120 | | |
1121 | 1121 | | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
1122 | 1127 | | |
1123 | 1128 | | |
1124 | 1129 | | |
| |||
1152 | 1157 | | |
1153 | 1158 | | |
1154 | 1159 | | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
1155 | 1165 | | |
1156 | 1166 | | |
1157 | 1167 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
538 | 538 | | |
539 | 539 | | |
540 | 540 | | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
541 | 547 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| |||
1906 | 1907 | | |
1907 | 1908 | | |
1908 | 1909 | | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
1909 | 1916 | | |
1910 | 1917 | | |
1911 | 1918 | | |
| |||
0 commit comments