Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756007AbbBCDdZ (ORCPT ); Mon, 2 Feb 2015 22:33:25 -0500 Received: from mail-la0-f45.google.com ([209.85.215.45]:40785 "EHLO mail-la0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751753AbbBCDdV (ORCPT ); Mon, 2 Feb 2015 22:33:21 -0500 MIME-Version: 1.0 In-Reply-To: References: <54CF5971.8090407@redhat.com> <54CFA24C.4080806@redhat.com> From: Wincy Van Date: Tue, 3 Feb 2015 11:32:59 +0800 Message-ID: Subject: Re: [PATCH v4 6/6] KVM: nVMX: Enable nested posted interrupt processing To: "Zhang, Yang Z" Cc: Paolo Bonzini , "gleb@kernel.org" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , Wanpeng Li , Jan Kiszka Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1667 Lines: 47 On Tue, Feb 3, 2015 at 9:21 AM, Zhang, Yang Z wrote: > Paolo Bonzini wrote on 2015-02-03: >> >> >> On 02/02/2015 16:33, Wincy Van wrote: >>> static void vmx_accomp_nested_posted_intr(struct kvm_vcpu *vcpu) { >>> struct vcpu_vmx *vmx = to_vmx(vcpu); >>> >>> if (is_guest_mode(vcpu) && >>> vmx->nested.posted_intr_nv != -1 && >>> pi_test_on(vmx->nested.pi_desc)) >>> kvm_apic_set_irr(vcpu, >>> vmx->nested.posted_intr_nv); } >>> Then we will get an nested-vmexit in vmx_check_nested_events, that >>> posted intr will be handled by L1 immediately. >>> This mechanism will also emulate the hardware's behavior: If a >>> posted intr was not accomplished by hardware, we will get an > > Actually, we cannot say "not accomplished by hardware". It more like we don't do the job well. See my below answer. > Yes, exactly. >>> interrupt with POSTED_INTR_NV. >> >> Yes. > > This is not enough. From L1's point, L2 is in vmx non-root mode. So we should emulate the posted interrupt in L0 correctly, say: > 1. clear ON bit > 2. ack interrupt > 3, syn pir to virr > 4. update RVI. > Then let the hardware(virtual interrupt delivery) to accomplish interrupt injection. > > Force a vmexit more like a trick. It's better to follow the hardware's behavior unless we cannot do it. > Yes, I will try again to do this. Thanks, Wincy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/