From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chalamarla, Tirumalesh" Subject: Re: [PATCH v4 04/12] KVM: arm64: handle ITS related GICv3 redistributor registers Date: Thu, 5 May 2016 18:06:59 +0000 Message-ID: References: <1458958450-19662-1-git-send-email-andre.przywara@arm.com> <1458958450-19662-5-git-send-email-andre.przywara@arm.com> <57066682.5040404@arm.com> <57066775.10102@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: "kvmarm@lists.cs.columbia.edu" , "linux-arm-kernel@lists.infradead.org" , "kvm@vger.kernel.org" To: Marc Zyngier , Andre Przywara , Christoffer Dall , Eric Auger Return-path: In-Reply-To: <57066775.10102@arm.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org On 4/7/16, 6:58 AM, "kvmarm-bounces@lists.cs.columbia.edu on behalf of Marc Zyngier" wrote: >On 07/04/16 14:54, Marc Zyngier wrote: >> On 26/03/16 02:14, Andre Przywara wrote: >>> In the GICv3 redistributor there are the PENDBASER and PROPBASER >>> registers which we did not emulate so far, as they only make sense >>> when having an ITS. In preparation for that emulate those MMIO >>> accesses by storing the 64-bit data written into it into a variable >>> which we later read in the ITS emulation. >>> >>> Signed-off-by: Andre Przywara >>> --- >>> include/kvm/vgic/vgic.h | 8 ++++++++ >>> virt/kvm/arm/vgic/vgic_mmio.c | 26 ++++++++++++++++++++++---- >>> 2 files changed, 30 insertions(+), 4 deletions(-) >>> >>> diff --git a/include/kvm/vgic/vgic.h b/include/kvm/vgic/vgic.h >>> index 11344e6..8ea5dd7 100644 >>> --- a/include/kvm/vgic/vgic.h >>> +++ b/include/kvm/vgic/vgic.h >>> @@ -145,6 +145,14 @@ struct vgic_dist { >>> >>> struct vgic_io_device *dist_iodevs; >>> struct vgic_io_device *redist_iodevs; >>> + >>> + /* Address of LPI configuration table shared by all redistributors */ >>> + u64 propbaser; >>> + >>> + /* Addresses of LPI pending tables per redistributor */ >>> + u64 *pendbaser; >> >> All these should probably either be phys_addr_t or gpa_t. > >Also: these registers are per redistributor. They really should appear >as such, and not be shoved in vgic_dist. > >As for GICR_PROPBASER being shared: this is an implementation choice. >All the architecture mandates is that the same value is programmed in >all the redistributors. > >Yes, you can share the storage, but I'd really want to see a field per >redist. +1 > >Thanks, > > M. >-- >Jazz is not dead. It just smells funny... >_______________________________________________ >kvmarm mailing list >kvmarm@lists.cs.columbia.edu >https://lists.cs.columbia.edu/mailman/listinfo/kvmarm From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tirumalesh.Chalamarla@caviumnetworks.com (Chalamarla, Tirumalesh) Date: Thu, 5 May 2016 18:06:59 +0000 Subject: [PATCH v4 04/12] KVM: arm64: handle ITS related GICv3 redistributor registers In-Reply-To: <57066775.10102@arm.com> References: <1458958450-19662-1-git-send-email-andre.przywara@arm.com> <1458958450-19662-5-git-send-email-andre.przywara@arm.com> <57066682.5040404@arm.com> <57066775.10102@arm.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 4/7/16, 6:58 AM, "kvmarm-bounces at lists.cs.columbia.edu on behalf of Marc Zyngier" wrote: >On 07/04/16 14:54, Marc Zyngier wrote: >> On 26/03/16 02:14, Andre Przywara wrote: >>> In the GICv3 redistributor there are the PENDBASER and PROPBASER >>> registers which we did not emulate so far, as they only make sense >>> when having an ITS. In preparation for that emulate those MMIO >>> accesses by storing the 64-bit data written into it into a variable >>> which we later read in the ITS emulation. >>> >>> Signed-off-by: Andre Przywara >>> --- >>> include/kvm/vgic/vgic.h | 8 ++++++++ >>> virt/kvm/arm/vgic/vgic_mmio.c | 26 ++++++++++++++++++++++---- >>> 2 files changed, 30 insertions(+), 4 deletions(-) >>> >>> diff --git a/include/kvm/vgic/vgic.h b/include/kvm/vgic/vgic.h >>> index 11344e6..8ea5dd7 100644 >>> --- a/include/kvm/vgic/vgic.h >>> +++ b/include/kvm/vgic/vgic.h >>> @@ -145,6 +145,14 @@ struct vgic_dist { >>> >>> struct vgic_io_device *dist_iodevs; >>> struct vgic_io_device *redist_iodevs; >>> + >>> + /* Address of LPI configuration table shared by all redistributors */ >>> + u64 propbaser; >>> + >>> + /* Addresses of LPI pending tables per redistributor */ >>> + u64 *pendbaser; >> >> All these should probably either be phys_addr_t or gpa_t. > >Also: these registers are per redistributor. They really should appear >as such, and not be shoved in vgic_dist. > >As for GICR_PROPBASER being shared: this is an implementation choice. >All the architecture mandates is that the same value is programmed in >all the redistributors. > >Yes, you can share the storage, but I'd really want to see a field per >redist. +1 > >Thanks, > > M. >-- >Jazz is not dead. It just smells funny... >_______________________________________________ >kvmarm mailing list >kvmarm at lists.cs.columbia.edu >https://lists.cs.columbia.edu/mailman/listinfo/kvmarm