Re: [PATCH][V3] KVM: svm: merge incomplete IPI emulation handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 20, 2019 at 07:17:45AM -0700, Sean Christopherson wrote:
> On Wed, Mar 20, 2019 at 06:07:46PM +0800, Li RongQing wrote:
> > Invalid int type emulation and target not running emulation have
> > same codes, which update APIC ICR high/low registers, and emulate
> > sending the IPI.
> > 
> > so fall through this switch cases to reduce duplicate codes and
> > wide the comment out to 80 columns
> > 
> > Co-developed-by: Zhang Yu <zhangyu31@xxxxxxxxx>
> 
> Zhang Yu's SOB is also needed when using Co-developed-by, e.g.:
> 
> Suggested-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
> Co-developed-by: Zhang Yu <zhangyu31@xxxxxxxxx>
> Signed-off-by: Zhang Yu <zhangyu31@xxxxxxxxx>
> Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx>
> 
> 
> Documentation/process/submitting-patches.rst:
> 
>   A Co-developed-by: states that the patch was also created by another developer
>   along with the original author.  This is useful at times when multiple people
>   work on a single patch.  Note, this person also needs to have a Signed-off-by:
>   line in the patch as well.
> 
> > Suggested-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
> > Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx>
> > ---
> > v2->v3: use Co-developed-by, instead of Signed-off-by
> > v1->v2: make cases statements are back-to-back and wide the comment out
> >         to 80 columns as suggested by Sean Christopherson
> > 
> >  arch/x86/kvm/svm.c | 28 ++++++++++------------------
> >  1 file changed, 10 insertions(+), 18 deletions(-)
> > 
> > diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
> > index c6613d1dfa75..db6946791663 100644
> > --- a/arch/x86/kvm/svm.c
> > +++ b/arch/x86/kvm/svm.c
> > @@ -4498,26 +4498,18 @@ static int avic_incomplete_ipi_interception(struct vcpu_svm *svm)
> >  
> >  	switch (id) {
> >  	case AVIC_IPI_FAILURE_INVALID_INT_TYPE:
> > -		/*
> > -		 * AVIC hardware handles the generation of
> > -		 * IPIs when the specified Message Type is Fixed
> > -		 * (also known as fixed delivery mode) and
> > -		 * the Trigger Mode is edge-triggered. The hardware
> > -		 * also supports self and broadcast delivery modes
> > -		 * specified via the Destination Shorthand(DSH)
> > -		 * field of the ICRL. Logical and physical APIC ID
> > -		 * formats are supported. All other IPI types cause
> > -		 * a #VMEXIT, which needs to emulated.
> > -		 */
> > -		kvm_lapic_reg_write(apic, APIC_ICR2, icrh);
> > -		kvm_lapic_reg_write(apic, APIC_ICR, icrl);
> > -		break;
> >  	case AVIC_IPI_FAILURE_TARGET_NOT_RUNNING: {
> > -		struct kvm_lapic *apic = svm->vcpu.arch.apic;
> > -
> >  		/*
> > -		 * Update ICR high and low, then emulate sending IPI,
> > -		 * which is handled when writing APIC_ICR.
> > +		 * AVIC hardware handles the generation of IPIs when the
> > +		 * specified Message Type is Fixed (also known as fixed
> > +		 * delivery mode) and the Trigger Mode is edge-triggered.
> > +		 * The hardware also supports self and broadcast delivery
> > +		 * modes specified via the Destination Shorthand(DSH) field
> > +		 * of the ICRL. Logical and physical APIC ID formats are
> > +		 * supported. All other IPI types cause a #VMEXIT, which
> > +		 * needs to emulated.
> > +		 * AVIC hardware also cannot handle IPIs to cpus that are
> > +		 * not running, emulate the IPI for that case as well
> >  		 */
> >  		kvm_lapic_reg_write(apic, APIC_ICR2, icrh);
> >  		kvm_lapic_reg_write(apic, APIC_ICR, icrl);

Unfortunately it would appear this was all for naught as a revert for
commit bb218fbcfaaa ("svm: Fix AVIC incomplete IPI emulation") was
just sent.

http://lkml.kernel.org/r/20190320081158.2442-1-suravee.suthikulpanit@xxxxxxx



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux