[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZVMkVmBPVfaMjDTL@chao-email>
Date: Tue, 14 Nov 2023 15:40:06 +0800
From: Chao Gao <chao.gao@...el.com>
To: Xin Li <xin3.li@...el.com>
CC: <kvm@...r.kernel.org>, <linux-doc@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-hyperv@...r.kernel.org>,
<linux-kselftest@...r.kernel.org>, <seanjc@...gle.com>,
<pbonzini@...hat.com>, <corbet@....net>, <kys@...rosoft.com>,
<haiyangz@...rosoft.com>, <wei.liu@...nel.org>,
<decui@...rosoft.com>, <tglx@...utronix.de>, <mingo@...hat.com>,
<bp@...en8.de>, <dave.hansen@...ux.intel.com>, <x86@...nel.org>,
<hpa@...or.com>, <vkuznets@...hat.com>, <peterz@...radead.org>,
<ravi.v.shankar@...el.com>
Subject: Re: [PATCH v1 13/23] KVM: VMX: Handle VMX nested exception for FRED
> /* Require Write-Back (WB) memory type for VMCS accesses. */
>@@ -7313,11 +7328,12 @@ static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu,
> }
> }
>
>- if (idt_vectoring_info & VECTORING_INFO_DELIVER_CODE_MASK) {
>- u32 err = vmcs_read32(error_code_field);
>- kvm_requeue_exception_e(vcpu, vector, err);
>- } else
>- kvm_requeue_exception(vcpu, vector);
>+ if (idt_vectoring_info & VECTORING_INFO_DELIVER_CODE_MASK)
>+ kvm_requeue_exception_e(vcpu, vector, vmcs_read32(error_code_field),
>+ idt_vectoring_info & INTR_INFO_NESTED_EXCEPTION_MASK);
>+ else
>+ kvm_requeue_exception(vcpu, vector,
>+ idt_vectoring_info & INTR_INFO_NESTED_EXCEPTION_MASK);
Exiting-event identification can also have bit 13 set, indicating a nested
exception encountered and caused VM-exit. when reinjecting the exception to
guests, kvm needs to set the "nested" bit, right? I suspect some changes
to e.g., handle_exception_nmi() are needed.
Powered by blists - more mailing lists