[PATCH v3 0/9] KVM: arm64: Initial host support for the Apple M1

2021-05-10 Thread Marc Zyngier
This is a new version of the series previously posted at [2], reworking
the vGIC and timer code to cope with the M1 braindead^Wamusing nature.

Hardly any change this time around, mostly rebased on top of upstream
now that the dependencies have made it in.

Tested with multiple concurrent VMs running from an initramfs.

* From v2:
  - Rebased on 5.13-rc1
  - Fixed a couple of nits in the GIC registration code

* From v1 [1]:
  - Rebased on Hector's v4 posting[0]
  - Dropped a couple of patches that have been merged in the above series
  - Fixed irq_ack callback on the timer path

[0] https://lore.kernel.org/r/20210402090542.131194-1-mar...@marcan.st
[1] https://lore.kernel.org/r/20210316174617.173033-1-...@kernel.org
[2] https://lore.kernel.org/r/20210403112931.1043452-1-...@kernel.org

Marc Zyngier (9):
  irqchip/gic: Split vGIC probing information from the GIC code
  KVM: arm64: Handle physical FIQ as an IRQ while running a guest
  KVM: arm64: vgic: Be tolerant to the lack of maintenance interrupt
  KVM: arm64: vgic: Let an interrupt controller advertise lack of HW
deactivation
  KVM: arm64: vgic: move irq->get_input_level into an ops structure
  KVM: arm64: vgic: Implement SW-driven deactivation
  KVM: arm64: timer: Refactor IRQ configuration
  KVM: arm64: timer: Add support for SW-based deactivation
  irqchip/apple-aic: Advertise some level of vGICv3 compatibility

 arch/arm64/kvm/arch_timer.c| 161 +
 arch/arm64/kvm/hyp/hyp-entry.S |   6 +-
 arch/arm64/kvm/vgic/vgic-init.c|  34 +-
 arch/arm64/kvm/vgic/vgic-v2.c  |  19 ++-
 arch/arm64/kvm/vgic/vgic-v3.c  |  19 ++-
 arch/arm64/kvm/vgic/vgic.c |  14 +--
 drivers/irqchip/irq-apple-aic.c|   8 ++
 drivers/irqchip/irq-gic-common.c   |  13 --
 drivers/irqchip/irq-gic-common.h   |   2 -
 drivers/irqchip/irq-gic-v3.c   |   6 +-
 drivers/irqchip/irq-gic.c  |   6 +-
 include/kvm/arm_vgic.h |  41 +--
 include/linux/irqchip/arm-gic-common.h |  25 +---
 include/linux/irqchip/arm-vgic-info.h  |  43 +++
 14 files changed, 291 insertions(+), 106 deletions(-)
 create mode 100644 include/linux/irqchip/arm-vgic-info.h

-- 
2.29.2

___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 0/9] KVM: arm64: Initial host support for the Apple M1

2021-05-12 Thread Alexandru Elisei
Hi Marc,

On 5/10/21 2:48 PM, Marc Zyngier wrote:
> This is a new version of the series previously posted at [2], reworking
> the vGIC and timer code to cope with the M1 braindead^Wamusing nature.
>
> Hardly any change this time around, mostly rebased on top of upstream
> now that the dependencies have made it in.
>
> Tested with multiple concurrent VMs running from an initramfs.
>
> * From v2:
>   - Rebased on 5.13-rc1
>   - Fixed a couple of nits in the GIC registration code
>
> * From v1 [1]:
>   - Rebased on Hector's v4 posting[0]
>   - Dropped a couple of patches that have been merged in the above series
>   - Fixed irq_ack callback on the timer path
>
> [0] https://lore.kernel.org/r/20210402090542.131194-1-mar...@marcan.st
> [1] https://lore.kernel.org/r/20210316174617.173033-1-...@kernel.org
> [2] https://lore.kernel.org/r/20210403112931.1043452-1-...@kernel.org

This looks interesting and I want to take a look. For now, I can only review the
series, but maybe at some point I'll take the leap and try to run Linux on my
Macbook Air.

Can I find something resembling a specification for the Apple interrupt
controller, or the only available documentation is in the Linux driver and 
patches
on the mailing list?

Thanks,

Alex

>
> Marc Zyngier (9):
>   irqchip/gic: Split vGIC probing information from the GIC code
>   KVM: arm64: Handle physical FIQ as an IRQ while running a guest
>   KVM: arm64: vgic: Be tolerant to the lack of maintenance interrupt
>   KVM: arm64: vgic: Let an interrupt controller advertise lack of HW
> deactivation
>   KVM: arm64: vgic: move irq->get_input_level into an ops structure
>   KVM: arm64: vgic: Implement SW-driven deactivation
>   KVM: arm64: timer: Refactor IRQ configuration
>   KVM: arm64: timer: Add support for SW-based deactivation
>   irqchip/apple-aic: Advertise some level of vGICv3 compatibility
>
>  arch/arm64/kvm/arch_timer.c| 161 +
>  arch/arm64/kvm/hyp/hyp-entry.S |   6 +-
>  arch/arm64/kvm/vgic/vgic-init.c|  34 +-
>  arch/arm64/kvm/vgic/vgic-v2.c  |  19 ++-
>  arch/arm64/kvm/vgic/vgic-v3.c  |  19 ++-
>  arch/arm64/kvm/vgic/vgic.c |  14 +--
>  drivers/irqchip/irq-apple-aic.c|   8 ++
>  drivers/irqchip/irq-gic-common.c   |  13 --
>  drivers/irqchip/irq-gic-common.h   |   2 -
>  drivers/irqchip/irq-gic-v3.c   |   6 +-
>  drivers/irqchip/irq-gic.c  |   6 +-
>  include/kvm/arm_vgic.h |  41 +--
>  include/linux/irqchip/arm-gic-common.h |  25 +---
>  include/linux/irqchip/arm-vgic-info.h  |  43 +++
>  14 files changed, 291 insertions(+), 106 deletions(-)
>  create mode 100644 include/linux/irqchip/arm-vgic-info.h
>
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm


Re: [PATCH v3 0/9] KVM: arm64: Initial host support for the Apple M1

2021-05-12 Thread Marc Zyngier
Hi Alex,

On Wed, 12 May 2021 17:22:43 +0100,
Alexandru Elisei  wrote:
> 
> Hi Marc,
> 
> On 5/10/21 2:48 PM, Marc Zyngier wrote:
> > This is a new version of the series previously posted at [2], reworking
> > the vGIC and timer code to cope with the M1 braindead^Wamusing nature.
> >
> > Hardly any change this time around, mostly rebased on top of upstream
> > now that the dependencies have made it in.
> >
> > Tested with multiple concurrent VMs running from an initramfs.
> >
> > * From v2:
> >   - Rebased on 5.13-rc1
> >   - Fixed a couple of nits in the GIC registration code
> >
> > * From v1 [1]:
> >   - Rebased on Hector's v4 posting[0]
> >   - Dropped a couple of patches that have been merged in the above series
> >   - Fixed irq_ack callback on the timer path
> >
> > [0] https://lore.kernel.org/r/20210402090542.131194-1-mar...@marcan.st
> > [1] https://lore.kernel.org/r/20210316174617.173033-1-...@kernel.org
> > [2] https://lore.kernel.org/r/20210403112931.1043452-1-...@kernel.org
> 
> This looks interesting and I want to take a look. For now, I can
> only review the series, but maybe at some point I'll take the leap
> and try to run Linux on my Macbook Air.

It is a bit involved at the moment, and I haven't tried on a laptop
(the nice thing about the Mini is that you can bury it under a pile of
other machines and still make use of it).

> Can I find something resembling a specification for the Apple
> interrupt controller, or the only available documentation is in the
> Linux driver and patches on the mailing list?

The Asahi wiki has a bunch of RE goodies, but you really don't need to
know much about the HW to follow what this series does. Actually, you
instead need to understand what the GIC guarantees to the guest,
because this is all about the GIC emulation on a non-GIC interrupt
controller.

Thanks,

M.

-- 
Without deviation from the norm, progress is not possible.
___
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm