[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Recent change pmem related breaks Xen migration
From: |
Anthony PERARD |
Subject: |
Recent change pmem related breaks Xen migration |
Date: |
Thu, 19 Dec 2019 15:42:14 +0000 |
Hi,
Commit bd108a44bc29 ("migration: ram: Switch to ram block writeback")
breaks migration on Xen. We have:
ramblock_ptr: Assertion `offset_in_ramblock(block, offset)' failed.
I've track it down to qemu_ram_writeback() calling ramblock_ptr()
unconditionally, even when the result will not be used.
Maybe we could call ramblock_ptr() twice in that function? I've prepared
a patch.
FYI, full-ish trace on restore of a xen guest:
#3 0x00007f82d0848526 in __assert_fail () from /usr/lib/libc.so.6
#4 0x0000562dc4578122 in ramblock_ptr (block=0x562dc5ebe2a0, offset=0) at
/root/build/qemu/include/exec/ram_addr.h:120
#5 0x0000562dc457d1b7 in qemu_ram_writeback (block=0x562dc5ebe2a0, start=0,
length=515899392) at /root/build/qemu/exec.c:2169
#6 0x0000562dc45e8941 in qemu_ram_block_writeback (block=0x562dc5ebe2a0) at
/root/build/qemu/include/exec/ram_addr.h:182
#7 0x0000562dc45f0b56 in ram_load_cleanup (opaque=0x562dc510fe00 <ram_state>)
at /root/build/qemu/migration/ram.c:3983
#8 0x0000562dc49970b6 in qemu_loadvm_state_cleanup () at
migration/savevm.c:2415
#9 0x0000562dc4997548 in qemu_loadvm_state (f=0x562dc6a1c600) at
migration/savevm.c:2597
#10 0x0000562dc4987be7 in process_incoming_migration_co (opaque=0x0) at
migration/migration.c:454
#11 0x0000562dc4b907e5 in coroutine_trampoline (i0=-962514432, i1=22061) at
util/coroutine-ucontext.c:115
And *block in ramblock_ptr():
(gdb) p *block
$2 = {
rcu = {
next = 0x0,
func = 0x0
},
mr = 0x562dc512e140 <ram_memory>,
host = 0x0,
colo_cache = 0x0,
offset = 0,
used_length = 515899392,
max_length = 515899392,
resized = 0x0,
flags = 16,
idstr = "xen.ram", '\000' <repeats 248 times>,
next = {
le_next = 0x562dc67bf7e0,
le_prev = 0x562dc510f1a0 <ram_list+64>
},
ramblock_notifiers = {
lh_first = 0x0
},
fd = -1,
page_size = 4096,
bmap = 0x0,
receivedmap = 0x562dc6a24a60,
clear_bmap = 0x0,
clear_bmap_shift = 0 '\000'
}
Cheers,
--
Anthony PERARD
- Recent change pmem related breaks Xen migration,
Anthony PERARD <=