2017-06-07 22:24 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>: > > > On 07/06/2017 16:10, Wanpeng Li wrote: >> 2017-06-07 21:05 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>: >>> >>> >>> On 07/06/2017 14:04, Wanpeng Li wrote: >>>> From: Wanpeng Li <wanpeng.li@xxxxxxxxxxx> >>>> >>>> Commit 9b132fbe5419 (Add rcu user eqs exception hooks for async page fault) >>>> adds rcu_irq_enter/exit() to kvm_async_pf_task_wait() to exit cpu idle eqs >>>> when needed, to protect the code that needs use rcu. There is no need to call >>>> this pairs if async page fault is not triggered from idle task. >>>> >>>> This patch fixes it by rcu irq exit if it is not triggered from idle task to >>>> avoid rcu hang after schedule() in the for loop. >>> >>> How does the bug manifest? >> >> Just by codes review. > > So it's just code cleanup? Yeah, this should be a cleanup and I will update the patch description. Actually, I observe a hang due to async pf injected to L2 which should be injected to L1, then tasks hang in L1 due to missing PAGE_READY async_pfs. Regards, Wanpeng Li