blob: 469c130943f151f24af77e6bed74a2d1d912f093 (
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
43
44
45
46
47
48
49
50
|
network: 0.834
instruction: 0.769
graphic: 0.750
device: 0.695
semantic: 0.603
KVM: 0.573
assembly: 0.571
mistranslation: 0.563
other: 0.561
socket: 0.550
vnc: 0.547
boot: 0.453
colo: secondary vm can't receive any packet
Following document 'COLO-FT.txt', I test colo feature on my hosts. It seems goes well,but I found the secondary vm can't receive any packets. I attached the process and find out the reason as follow, the filter-redirector(red0) didn't flush it's queue because the secondary vm in migrate state(RUN_STATE_INMIGRATE) :
int qemu_can_send_packet(NetClientState *sender)
{
int vm_running = runstate_is_running():
if (!vm_running) { // it will return false on the secondary vm
return 0;
}
------
}
How does it produce outbound packets in the secondary vm as it in migrate state?
static void *qemu_kvm_cpu_thread_fn(void *arg)
{
------
do {
if (cpu_can_run(cpu)) { // it will return false on the secondary vm
r = kvm_cpu_exec(cpu);
------
}
The qemu version is 2.9.0 release.
The secondary vm state make me confused. I tried to add vm_stop and vm_start in colo_process_incoming_thread function, but it crashed.
In qemu upstream COLO project can not fully running, you can test my internal branch.
https://github.com/zhangckid/qemu/commits/colo-with-virtio-net-internal-jul10
Thanks
Zhang Chen
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Thank you and sorry for the inconvenience.
[Expired for QEMU because there has been no activity for 60 days.]
|