blob: 3c412080adf92dcdce2feb8dd3328b05019c28e8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
ARM: When 'virsh dump' exports vmcore, specifies --format compression format, virtual machine assert hangs
Description of problem:
**ARM: virsh dump exports vmcore, specifies --format compression format, virtual machine assert hangs**
**why 'virsh dump' page size configured as target page size (64KiB), but 'Implement kvm-steal-time' page size configured as host page size (4KB)?**
Steps to reproduce:
The vm image page size is configured as 64KiB, and the host page size is configured as 4KiB
1.start vm
2.Execute the virsh dump command to export vmcore
Specify the compression format of vmcore, --format (kdump-zlib, kdump-snappy, kdump-lzo)
/usr/bin/virsh dump avocado-vt-vm1 /var/tmp/vm.core --memory-only --format kdump-zlib
/usr/bin/virsh dump avocado-vt-vm1 /var/tmp/vm.core --memory-only --format kdump-lzo
/usr/bin/virsh dump avocado-vt-vm1 /var/tmp/vm.core --memory-only --format kdump-snappy
**expected results**: The vmcore file is successfully exported and the virtual machine is running normally.
**actual results**: The vmcore file is not exported normally, and the virtual machine is shut down abnormally.
Additional information:
qemu log:

host page size:

vm page size:

dump.c: get_next_page assert:

The code for the error assert exit is shown above. Here, it will check whether the memory to be dumped is actually aligned with the termination address. It needs to be aligned with the page size of the virtual machine. You can see through gdb that it is 64KiB.

After binary search, it was found that a feature of kvm_steal_time was added to arm in version 5.2. Added the following code:

|