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 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);
> -- 
> 2.16.2
> 



[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