Re: [PATCH v3] KVM: async_pf: rcu irq exit if not triggered from idle task

From: Paolo Bonzini
Date: Tue Aug 01 2017 - 06:37:43 EST

On 27/07/2017 11:05, Wanpeng Li wrote:
> 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 is true, but I think the patch is making things more complex where
it could be simplifying them. Right now, the "native_safe_halt" branch
is calling rcu_irq_exit/enter but the "schedule" branch is not. Could
you just pull rcu_irq_exit/enter outside the "if", so that you inform
the RCU subsystem even in the !n.halted case?