Hi, On Fri, Jan 28, 2022 at 12:18:51PM +0000, Marc Zyngier wrote: > From: Christoffer Dall <christoffer.dall@xxxxxxx> > > Emulating EL2 also means emulating the EL2 timers. To do so, we expand > our timer framework to deal with at most 4 timers. At any given time, > two timers are using the HW timers, and the two others are purely > emulated. > > The role of deciding which is which at any given time is left to a > mapping function which is called every time we need to make such a > decision. > > Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxx> > [maz: added CNTVOFF support, general reworking for v4.8] > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > --- > arch/arm64/include/asm/kvm_host.h | 4 + > arch/arm64/kvm/arch_timer.c | 165 ++++++++++++++++++++++++++++-- > arch/arm64/kvm/sys_regs.c | 7 +- > arch/arm64/kvm/trace_arm.h | 6 +- > arch/arm64/kvm/vgic/vgic.c | 15 +++ > include/kvm/arm_arch_timer.h | 8 +- > include/kvm/arm_vgic.h | 1 + > 7 files changed, 194 insertions(+), 12 deletions(-) > [..] > @@ -1301,6 +1445,7 @@ static void set_timer_irqs(struct kvm *kvm, int vtimer_irq, int ptimer_irq) > kvm_for_each_vcpu(i, vcpu, kvm) { > vcpu_vtimer(vcpu)->irq.irq = vtimer_irq; > vcpu_ptimer(vcpu)->irq.irq = ptimer_irq; > + /* TODO: Add support for hv/hp timers */ > } > } > > @@ -1311,6 +1456,8 @@ int kvm_arm_timer_set_attr(struct kvm_vcpu *vcpu, struct kvm_device_attr *attr) > struct arch_timer_context *ptimer = vcpu_ptimer(vcpu); > int irq; > > + /* TODO: Add support for hv/hp timers */ Is the patch unfinished? Thanks, Alex