From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v8 03/13] KVM: Define a new interface kvm_intr_is_single_vcpu() Date: Thu, 17 Sep 2015 18:00:21 +0200 Message-ID: <55FAE395.4000008@redhat.com> References: <1442393409-2623-1-git-send-email-feng.wu@intel.com> <1442393409-2623-4-git-send-email-feng.wu@intel.com> <55F934F5.7040605@redhat.com> <55FA8AED.6090700@redhat.com> <55FACD35.1030602@redhat.com> <20150917155821.GB2573@potion.brq.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150917155821.GB2573-KfRq7+sF/6zkZJWtSm8s3NvLeJWuRmrY@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Cc: "kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "eric.auger-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org" , "mtosatti-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org" , "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" List-Id: iommu@lists.linux-foundation.org CgpPbiAxNy8wOS8yMDE1IDE3OjU4LCBSYWRpbSBLcsSNbcOhxZkgd3JvdGU6Cj4gRm9yIGludGVy cnVwdHMgZnJvbSBNU0kgYW5kIElPeEFQSUM6Cj4gLSBGbGF0IGxvZ2ljYWwgaW50ZXJydXB0cyBh cmUgZGVsaXZlcmVkIGFzIGlmIHdlIGhhZCBuYXR1cmFsCj4gICAoQ1BVMDwtPmJpdDAsIENQVTE8 LT5iaXQxLCAuLi4pIGZsYXQgbG9naWNhbCB4QVBJQyBmb3IgZmlyc3QgOCBWQ1BVcy4KPiAtIENs dXN0ZXIgbG9naWNhbCBkb2Vzbid0IHdvcmsgbXVjaCwgaXQncyBpbnRlcnByZXRlZCBsaWtlIGZs YXQgbG9naWNhbC4KPiAgIEkgZGlkbid0IGNhcmUgYWJvdXQgeEFQSUMgY2x1c3RlciBiZWNhdXNl IExpbnV4LCB0aGUgc29sZSB1c2VyIG9mIG91cgo+ICAgcGFyYXZpcnR1YWxpemVkIHgyQVBJQywg ZG9lc24ndCBjb25maWd1cmUgaXQuCj4gCj4gSSdsbCBwYXN0ZSBrdm1fYXBpY19tZGEoKSBzb3Vy Y2UgZm9yIGJldHRlciBleHBsYW5hdGlvbjoKPiAKPiAgIHN0YXRpYyB1MzIga3ZtX2FwaWNfbWRh KHVuc2lnbmVkIGludCBkZXN0X2lkLCBzdHJ1Y3Qga3ZtX2xhcGljICpzb3VyY2UsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9sYXBp YyAqdGFyZ2V0KQo+ICAgewo+ICAgCWJvb2wgaXBpID0gc291cmNlICE9IE5VTEw7Cj4gICAJYm9v bCB4MmFwaWNfbWRhID0gYXBpY194MmFwaWNfbW9kZShpcGkgPyBzb3VyY2UgOiB0YXJnZXQpOwo+ ICAgCj4gICAJaWYgKCFpcGkgJiYgZGVzdF9pZCA9PSBBUElDX0JST0FEQ0FTVCAmJiB4MmFwaWNf bWRhKQo+ICAgCQlyZXR1cm4gWDJBUElDX0JST0FEQ0FTVDsKPiAgIAo+ICAgCXJldHVybiB4MmFw aWNfbWRhID8gZGVzdF9pZCA6IFNFVF9BUElDX0RFU1RfRklFTEQoZGVzdF9pZCk7Cj4gICB9Cj4g Cj4gTVNJL0lPeEFQSUMgaW50ZXJydXB0IG1lYW5zIHRoYXQgc291cmNlIGlzIE5VTEwgYW5kIGlm IHRoZSB0YXJnZXQgaXMgaW4KPiB4MkFQSUMgbW9kZSwgdGhlIG9yaWdpbmFsICdkZXN0X2lkJyBp cyByZXR1cm5lZCBhcyBtZGEgPT4gYSBmbGF0IGxvZ2ljYWwKPiB4QVBJQyB0byAweDBmIHdpbGwg Z2V0IGludGVycHJldGVkIGFzIChjbHVzdGVyKSBsb2dpY2FsIHgyQVBJQyAweGYgaW4KPiBrdm1f YXBpY19tYXRjaF9sb2dpY2FsX2FkZHIoKS4KPiB4QVBJQyBhZGRyZXNzIGFyZSBvbmx5IDggYml0 IGxvbmcgc28gdGhleSBhbHdheXMgZ2V0IGRlbGl2ZXJlZCB0byB4MkFQSUMKPiBjbHVzdGVyIDAs IHdoZXJlIGZpcnN0IDE2IGJpdHMgd29yayBsaWtlIHhBUElDIGZsYXQgbG9naWNhbCBtb2RlLgoK T2ssIEkgd2FzIHdvbmRlcmluZyB3aGV0aGVyIHRoaXMgd2FzIHRoZSBjb3JyZWN0IGludGVycHJl dGF0aW9uLiAgVGhhbmtzIQoKUGFvbG8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5k YXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752560AbbIQQAc (ORCPT ); Thu, 17 Sep 2015 12:00:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52731 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751477AbbIQQAa (ORCPT ); Thu, 17 Sep 2015 12:00:30 -0400 Subject: Re: [PATCH v8 03/13] KVM: Define a new interface kvm_intr_is_single_vcpu() To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <1442393409-2623-1-git-send-email-feng.wu@intel.com> <1442393409-2623-4-git-send-email-feng.wu@intel.com> <55F934F5.7040605@redhat.com> <55FA8AED.6090700@redhat.com> <55FACD35.1030602@redhat.com> <20150917155821.GB2573@potion.brq.redhat.com> Cc: "Wu, Feng" , "alex.williamson@redhat.com" , "joro@8bytes.org" , "mtosatti@redhat.com" , "eric.auger@linaro.org" , "kvm@vger.kernel.org" , "iommu@lists.linux-foundation.org" , "linux-kernel@vger.kernel.org" From: Paolo Bonzini Message-ID: <55FAE395.4000008@redhat.com> Date: Thu, 17 Sep 2015 18:00:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <20150917155821.GB2573@potion.brq.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/09/2015 17:58, Radim Krčmář wrote: > For interrupts from MSI and IOxAPIC: > - Flat logical interrupts are delivered as if we had natural > (CPU0<->bit0, CPU1<->bit1, ...) flat logical xAPIC for first 8 VCPUs. > - Cluster logical doesn't work much, it's interpreted like flat logical. > I didn't care about xAPIC cluster because Linux, the sole user of our > paravirtualized x2APIC, doesn't configure it. > > I'll paste kvm_apic_mda() source for better explanation: > > static u32 kvm_apic_mda(unsigned int dest_id, struct kvm_lapic *source, > struct kvm_lapic *target) > { > bool ipi = source != NULL; > bool x2apic_mda = apic_x2apic_mode(ipi ? source : target); > > if (!ipi && dest_id == APIC_BROADCAST && x2apic_mda) > return X2APIC_BROADCAST; > > return x2apic_mda ? dest_id : SET_APIC_DEST_FIELD(dest_id); > } > > MSI/IOxAPIC interrupt means that source is NULL and if the target is in > x2APIC mode, the original 'dest_id' is returned as mda => a flat logical > xAPIC to 0x0f will get interpreted as (cluster) logical x2APIC 0xf in > kvm_apic_match_logical_addr(). > xAPIC address are only 8 bit long so they always get delivered to x2APIC > cluster 0, where first 16 bits work like xAPIC flat logical mode. Ok, I was wondering whether this was the correct interpretation. Thanks! Paolo