On 01/01/2018 23:37, Liran Alon wrote: > > > On 01/01/18 23:32, Paolo Bonzini wrote: >> On 27/12/2017 16:54, Paolo Bonzini wrote: >>> (b) Get rid of pi_pending and instead use virtual LAPIC IRR bit and >>> process it specially in case vCPU in non-root-mode & posted-interrupts >>> is active. >>> (c) Get rid of software simulation of nested posted-interrupts >>> processing and instead use self-IPI trick to make CPU process it for us. >>> >>> What do you think? >> >> I guess 2(b) would be done in vmx_hwapic_irr_update? > > I'm not sure yet. I am currently busy with other tasks and therefore > didn't have enough time to work on the new version of this series since > your comments. > > I need to think of what would be the most elegant and easy-to-understand > code for this mechanism. There are many delicate cases here that needs > to be thought through. > > Regarding vmx_hwapic_irr_update(), I think that it is a bit misleading > putting the logic handling this case in there. > vmx_hwapic_irr_update() should conceptually only update the RVI. Similar > to vmx_hwapic_isr_update() update only the SVI. > I also think that the separation between vmx_hwapic_irr_update() & > vmx_set_rvi() is a bit weird. I would have except > vmx_hwapic_irr_update() and vmx_hwapic_isr_update() to be symmetric. I'm not sure that they can be symmetric, especially since we're doing vmx_hwapic_irr_update before all vmentries. In fact I'm wondering if kvm_x86_ops->hwapic_irr_update is needed at all. Paolo