From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752138AbcGASbz (ORCPT ); Fri, 1 Jul 2016 14:31:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47679 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751932AbcGASbx (ORCPT ); Fri, 1 Jul 2016 14:31:53 -0400 Date: Fri, 1 Jul 2016 20:31:44 +0200 From: Radim =?utf-8?B?S3LEjW3DocWZ?= To: David Matlack Cc: "linux-kernel@vger.kernel.org" , kvm list , Paolo Bonzini , "Lan, Tianyu" , Igor Mammedov , Jan Kiszka , Peter Xu Subject: Re: [PATCH v1 10/11] KVM: x86: add KVM_CAP_X2APIC_API Message-ID: <20160701183143.GD2301@potion> References: <20160630205429.16480-1-rkrcmar@redhat.com> <20160630205429.16480-11-rkrcmar@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 01 Jul 2016 18:31:48 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2016-07-01 11:09-0700, David Matlack: > On Thu, Jun 30, 2016 at 1:54 PM, Radim Krčmář wrote: >> KVM_CAP_X2APIC_API can be enabled to extend APIC ID in get/set ioctl and MSI >> addresses to 32 bits. Both are needed to support x2APIC. >> >> The capability has to be toggleable and disabled by default, because get/set >> ioctl shifted and truncated APIC ID to 8 bits by using a non-standard protocol >> inspired by xAPIC and the change is not backward-compatible. >> >> Changes to MSI addresses follow the format used by interrupt remapping unit. >> The upper address word, that used to be 0, contains upper 24 bits of the LAPIC >> address in its upper 24 bits. Lower 8 bits are reserved as 0. >> Using the upper address word is not backward-compatible either as we didn't >> check that userspace zeroed the word. Reserved bits are still not explicitly >> checked, but non-zero data will affect LAPIC addresses, which will cause a bug. >> >> Signed-off-by: Radim Krčmář >> --- >> diff --git a/arch/x86/kvm/irq_comm.c b/arch/x86/kvm/irq_comm.c >> @@ -111,12 +111,17 @@ int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, >> } >> >> void kvm_set_msi_irq(struct kvm_kernel_irq_routing_entry *e, >> - struct kvm_lapic_irq *irq) >> + struct kvm_lapic_irq *irq, bool x2apic_api) >> { >> trace_kvm_msi_set_irq(e->msi.address_lo, e->msi.data); > > This tracepoint should start reporting e->msi.address_hi as well now. Good catch, thanks.