kill10 failed
Closed this issue · 3 comments
Martins3 commented
因为 child 在创建出来虚拟机之前就会收到信号,在模拟的 fork 返回的位置,信号处理函数正确执行,之后模拟并没有这个信号的干扰。
Martins3 commented
似乎仅仅是在 dup_vm 中间增加一个 printf 就会导致成功的概率剧烈变化(0% ->90%)
- 从内核的那一侧进行检查一下
- 是不是因为竞争的原因
- 为什么就是哪一个无法创建新的 VM,之后的 child 都可以创建
好消息 : 失败的原因都是相同的,无法创建新的 VM
Martins3 commented
Info: KVM_CREATE_VM
Info: KVM_CREATE_VCPU
parent pid 4245
parent after fork
parent pid 4245
parent after fork
parent exit
child [4249] get the signal
Fatal: KVM_CREATE_VM
child [4248] get the signal
Info: KVM_CREATE_VM
Info: KVM_CREATE_VCPU
child work finished
Martins3 commented
do_mmu_notifier_register => mm_take_all_locks => signal_pending