All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Gleb Natapov <gleb@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm <kvm@vger.kernel.org>, Nadav Har'El <nyh@math.technion.ac.il>,
	"Nakajima, Jun" <jun.nakajima@intel.com>
Subject: Re: [PATCH] KVM: nVMX: Fix injection of PENDING_INTERRUPT and NMI_WINDOW exits to L1
Date: Sat, 16 Feb 2013 13:08:43 +0100	[thread overview]
Message-ID: <511F76CB.2000405@web.de> (raw)
In-Reply-To: <511F72B8.6060305@web.de>

[-- Attachment #1: Type: text/plain, Size: 1517 bytes --]

On 2013-02-16 12:51, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> The comment was wrong: enable_irq_window might be called after
> prepare_vmcs02 when we left L2 to prepare IRQ injecting for L1. Same for
> NMIs.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  arch/x86/kvm/vmx.c |   10 +++-------
>  1 files changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 81a25de..68a045ae 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -6113,14 +6113,10 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu)
>  	case EXIT_REASON_TRIPLE_FAULT:
>  		return 1;
>  	case EXIT_REASON_PENDING_INTERRUPT:
> +		return nested_cpu_has(vmcs12, CPU_BASED_VIRTUAL_INTR_PENDING);
>  	case EXIT_REASON_NMI_WINDOW:
> -		/*
> -		 * prepare_vmcs02() set the CPU_BASED_VIRTUAL_INTR_PENDING bit
> -		 * (aka Interrupt Window Exiting) only when L1 turned it on,
> -		 * so if we got a PENDING_INTERRUPT exit, this must be for L1.
> -		 * Same for NMI Window Exiting.
> -		 */
> -		return 1;
> +		return vmcs12->pin_based_vm_exec_control &
> +			PIN_BASED_NMI_EXITING;
>  	case EXIT_REASON_TASK_SWITCH:
>  		return 1;
>  	case EXIT_REASON_CPUID:
> 

No, this is wrong. I first wrote a patch that ignored enable_irq_window
when the guest is not interested in external IRQs. But then I thought
that wasn't correct. I tend to believe now my first idea was better.

Need to rethink.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

  reply	other threads:[~2013-02-16 12:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-16 11:51 [PATCH] KVM: nVMX: Fix injection of PENDING_INTERRUPT and NMI_WINDOW exits to L1 Jan Kiszka
2013-02-16 12:08 ` Jan Kiszka [this message]
2013-02-16 14:46   ` Nadav Har'El
2013-02-16 14:55     ` Jan Kiszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=511F76CB.2000405@web.de \
    --to=jan.kiszka@web.de \
    --cc=gleb@redhat.com \
    --cc=jun.nakajima@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=nyh@math.technion.ac.il \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.