Re: [PATCH 2/4] KVM: VMX: avoid double list add with VT-d posted interrupts

From: Paolo Bonzini
Date: Fri Jun 09 2017 - 03:29:56 EST




On 09/06/2017 04:50, Peter Xu wrote:
> Even, I'm thinking whether we can unconditionally setup PDST only in
> pi_load(), then post_block() only needs to handle the NV bit.

No, you can't do that without fiddling with the blocked_vcpu lists in
pi_load.

> (PS. since I'm at here... could I ask why in pi_pre_block we need to
> udpate PDST as well? I guess that decides who will run the
> wakeup_handler code to kick the vcpu thread, but would that really
> matter?)

For this one it's a yes. :) I think it's not needed anymore indeed
after these patches; see this comment:

/*
* The wakeup_handler expects the VCPU to be on the
* blocked_vcpu_list that matches ndst. Interrupts
* are disabled so no preemption should happen, but
* err on the side of safety.
*/

So we could add a WARN.

Paolo