From: Marc Zyngier <marc.zyngier@arm.com>
To: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: christoffer.dall@linaro.org, andre.przywara@arm.com,
kvmarm@lists.cs.columbia.edu,
linux-arm-kernel@lists.infradead.org, kbuild-all@01.org
Subject: Re: [RFC PATCH 0/8] Support GICv3 ITS and vITS in 32-bit mode
Date: Sat, 22 Oct 2016 16:55:51 +0100 [thread overview]
Message-ID: <20161022165551.07680200@arm.com> (raw)
In-Reply-To: <1477042601-15227-1-git-send-email-vladimir.murzin@arm.com>
On Fri, 21 Oct 2016 10:36:33 +0100
Vladimir Murzin <vladimir.murzin@arm.com> wrote:
Hi Vladimir,
> Hi,
>
> This series introduces GICv3 ITS and vITS to 32-bit world. The first
> six patches make it possible to use ITS in a 32-bit guest with vITS on
> 64-bit host. The last two patches extend vITS to 32-bit host.
I quite like this series, mostly because it deletes a bit of code and
fixes a number of shortcomings. My only gripes are than it doesn't
apply to my current tree (see my comment on patch 4), and that this
should effectively be split in two series: one enabling the ITS on
32bit, and the other switching on ITS emulation for 32bit KVM.
Effectively, these series are completely independent.
It also makes it easier for me to merge things as I don't have to
coordinate the merging strategy with... myself. ;-)
Please repost this once the GIC fixes have reached mainline, and this
should be in good shape for a quick merge.
> I used Andrea's its/v8 branch at [1] for testing with the following
> diff on top
>
> diff --git a/arm/aarch32/arm-cpu.c b/arm/aarch32/arm-cpu.c
> index 27a8e17..16bba55 100644
> --- a/arm/aarch32/arm-cpu.c
> +++ b/arm/aarch32/arm-cpu.c
> @@ -12,7 +12,7 @@ static void generate_fdt_nodes(void *fdt, struct kvm *kvm)
> {
> int timer_interrupts[4] = {13, 14, 11, 10};
>
> - gic__generate_fdt_nodes(fdt, IRQCHIP_GICV2);
> + gic__generate_fdt_nodes(fdt, kvm->cfg.arch.irqchip);
> timer__generate_fdt_nodes(fdt, kvm, timer_interrupts);
> }
>
> diff --git a/arm/aarch32/include/kvm/kvm-arch.h b/arm/aarch32/include/kvm/kvm-arch.h
> index 1632e3c..99231f6 100644
> --- a/arm/aarch32/include/kvm/kvm-arch.h
> +++ b/arm/aarch32/include/kvm/kvm-arch.h
> @@ -1,8 +1,8 @@
> #ifndef KVM__KVM_ARCH_H
> #define KVM__KVM_ARCH_H
>
> -#define ARM_GIC_DIST_SIZE 0x1000
> -#define ARM_GIC_CPUI_SIZE 0x2000
> +#define ARM_GIC_DIST_SIZE 0x100000
> +#define ARM_GIC_CPUI_SIZE 0x200000
>
> #define ARM_KERN_OFFSET(...) 0x8000
>
>
> After passing --irqchip=gicv3-its --force-pci to kvmtool I can see
> that MSI is used:
>
> # cat /proc/interrupts
> CPU0
> 18: 1251 GICv3 27 Level arch_timer
> 28: 0 ITS-MSI 49152 Edge virtio3-config
> 29: 0 ITS-MSI 49153 Edge virtio3-input
> 30: 0 ITS-MSI 49154 Edge virtio3-output
> 31: 0 ITS-MSI 32768 Edge virtio2-config
> 32: 2 ITS-MSI 32769 Edge virtio2-input.0
> 33: 1 ITS-MSI 32770 Edge virtio2-output.0
> 34: 0 ITS-MSI 0 Edge virtio0-config
> 35: 303 ITS-MSI 1 Edge virtio0-requests
> 36: 0 ITS-MSI 16384 Edge virtio1-config
> 37: 218 ITS-MSI 16385 Edge virtio1-requests
> IPI0: 0 CPU wakeup interrupts
> IPI1: 0 Timer broadcast interrupts
> IPI2: 0 Rescheduling interrupts
> IPI3: 0 Function call interrupts
> IPI4: 0 CPU stop interrupts
> IPI5: 0 IRQ work interrupts
> IPI6: 0 completion interrupts
> Err: 0
Please also post these patches (I may try it in a model if I feel brave
enough...)!
Thanks,
M.
--
Jazz is not dead. It just smells funny.
WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/8] Support GICv3 ITS and vITS in 32-bit mode
Date: Sat, 22 Oct 2016 16:55:51 +0100 [thread overview]
Message-ID: <20161022165551.07680200@arm.com> (raw)
In-Reply-To: <1477042601-15227-1-git-send-email-vladimir.murzin@arm.com>
On Fri, 21 Oct 2016 10:36:33 +0100
Vladimir Murzin <vladimir.murzin@arm.com> wrote:
Hi Vladimir,
> Hi,
>
> This series introduces GICv3 ITS and vITS to 32-bit world. The first
> six patches make it possible to use ITS in a 32-bit guest with vITS on
> 64-bit host. The last two patches extend vITS to 32-bit host.
I quite like this series, mostly because it deletes a bit of code and
fixes a number of shortcomings. My only gripes are than it doesn't
apply to my current tree (see my comment on patch 4), and that this
should effectively be split in two series: one enabling the ITS on
32bit, and the other switching on ITS emulation for 32bit KVM.
Effectively, these series are completely independent.
It also makes it easier for me to merge things as I don't have to
coordinate the merging strategy with... myself. ;-)
Please repost this once the GIC fixes have reached mainline, and this
should be in good shape for a quick merge.
> I used Andrea's its/v8 branch at [1] for testing with the following
> diff on top
>
> diff --git a/arm/aarch32/arm-cpu.c b/arm/aarch32/arm-cpu.c
> index 27a8e17..16bba55 100644
> --- a/arm/aarch32/arm-cpu.c
> +++ b/arm/aarch32/arm-cpu.c
> @@ -12,7 +12,7 @@ static void generate_fdt_nodes(void *fdt, struct kvm *kvm)
> {
> int timer_interrupts[4] = {13, 14, 11, 10};
>
> - gic__generate_fdt_nodes(fdt, IRQCHIP_GICV2);
> + gic__generate_fdt_nodes(fdt, kvm->cfg.arch.irqchip);
> timer__generate_fdt_nodes(fdt, kvm, timer_interrupts);
> }
>
> diff --git a/arm/aarch32/include/kvm/kvm-arch.h b/arm/aarch32/include/kvm/kvm-arch.h
> index 1632e3c..99231f6 100644
> --- a/arm/aarch32/include/kvm/kvm-arch.h
> +++ b/arm/aarch32/include/kvm/kvm-arch.h
> @@ -1,8 +1,8 @@
> #ifndef KVM__KVM_ARCH_H
> #define KVM__KVM_ARCH_H
>
> -#define ARM_GIC_DIST_SIZE 0x1000
> -#define ARM_GIC_CPUI_SIZE 0x2000
> +#define ARM_GIC_DIST_SIZE 0x100000
> +#define ARM_GIC_CPUI_SIZE 0x200000
>
> #define ARM_KERN_OFFSET(...) 0x8000
>
>
> After passing --irqchip=gicv3-its --force-pci to kvmtool I can see
> that MSI is used:
>
> # cat /proc/interrupts
> CPU0
> 18: 1251 GICv3 27 Level arch_timer
> 28: 0 ITS-MSI 49152 Edge virtio3-config
> 29: 0 ITS-MSI 49153 Edge virtio3-input
> 30: 0 ITS-MSI 49154 Edge virtio3-output
> 31: 0 ITS-MSI 32768 Edge virtio2-config
> 32: 2 ITS-MSI 32769 Edge virtio2-input.0
> 33: 1 ITS-MSI 32770 Edge virtio2-output.0
> 34: 0 ITS-MSI 0 Edge virtio0-config
> 35: 303 ITS-MSI 1 Edge virtio0-requests
> 36: 0 ITS-MSI 16384 Edge virtio1-config
> 37: 218 ITS-MSI 16385 Edge virtio1-requests
> IPI0: 0 CPU wakeup interrupts
> IPI1: 0 Timer broadcast interrupts
> IPI2: 0 Rescheduling interrupts
> IPI3: 0 Function call interrupts
> IPI4: 0 CPU stop interrupts
> IPI5: 0 IRQ work interrupts
> IPI6: 0 completion interrupts
> Err: 0
Please also post these patches (I may try it in a model if I feel brave
enough...)!
Thanks,
M.
--
Jazz is not dead. It just smells funny.
next prev parent reply other threads:[~2016-10-22 15:55 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-21 9:36 [RFC PATCH 0/8] Support GICv3 ITS and vITS in 32-bit mode Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 1/8] irqchip/gic-v3-its: Change unsigned types for AArch32 compatibility Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 2/8] irqchip/gic-v3-its: narrow down Entry Size when used as a divider Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 3/8] irqchip/gicv3-its: specialise flush_dcache operation Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 4/8] irqchip/gicv3-its: specialise readq and writeq accesses Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-22 15:43 ` Marc Zyngier
2016-10-22 15:43 ` Marc Zyngier
2016-10-21 9:36 ` [RFC PATCH 5/8] ARM: gic-v3-its: Add 32bit support to GICv3 ITS Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 6/8] ARM: virt: select ARM_GIC_V3_ITS Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 7/8] KVM: arm64: vgic-its: fix compatability with 32-bit Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 9:49 ` Andre Przywara
2016-10-21 9:49 ` Andre Przywara
2016-10-21 11:19 ` Vladimir Murzin
2016-10-21 11:19 ` Vladimir Murzin
2016-10-21 9:36 ` [RFC PATCH 8/8] ARM: KVM: Support vGICv3 ITS Vladimir Murzin
2016-10-21 9:36 ` Vladimir Murzin
2016-10-21 11:02 ` Andre Przywara
2016-10-21 11:02 ` Andre Przywara
2016-10-21 11:20 ` Vladimir Murzin
2016-10-21 11:20 ` Vladimir Murzin
2016-10-22 15:55 ` Marc Zyngier [this message]
2016-10-22 15:55 ` [RFC PATCH 0/8] Support GICv3 ITS and vITS in 32-bit mode Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161022165551.07680200@arm.com \
--to=marc.zyngier@arm.com \
--cc=andre.przywara@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=kbuild-all@01.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=vladimir.murzin@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.