Re: [PATCH] KVM: nSVM/nVMX: Implement vmexit on INIT assertion

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

 



On Sun, Feb 24, 2013 at 03:08:53PM +0100, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>

> @@ -2390,6 +2390,21 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
>  	return 0;
>  }
>  +static bool nested_svm_handle_init_received(struct kvm_vcpu *vcpu)
> +{
> +	struct vcpu_svm *svm = to_svm(vcpu);
> +
> +	if (!is_guest_mode(vcpu) ||
> +	    !(svm->nested.intercept & (1ULL << INTERCEPT_INIT)))
> +		return false;
> +
> +	svm->vmcb->control.exit_code     = SVM_EXIT_INIT;
> +	svm->vmcb->control.exit_int_info = 0;
> +	nested_svm_vmexit(svm);
> +
> +	return true;
> +}

[...]

> +	if (vcpu->arch.mp_state == KVM_MP_STATE_INIT_RECEIVED &&
> +	    kvm_x86_ops->handle_init_received(vcpu)) {
> +		/* nested vmexit, L1 is runnable now */
> +		vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
> +		return 1;
> +	}

Hmm, looks like the INIT signal is lost after the VMEXIT. But on SVM the
INIT signal is still pending an will be delivered when GIF becomes one
again. Do I miss anything?


	Joerg


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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