Skip to content

Commit

Permalink
KVM: arm/arm64: Set VCPU affinity for virt timer irq
Browse files Browse the repository at this point in the history
As we are about to take physical interrupts for the virtual timer on the
host but want to leave those active while running the VM (and let the VM
deactivate them), we need to set the vtimer PPI affinity accordingly.

Signed-off-by: Christoffer Dall <cdall@linaro.org>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
  • Loading branch information
Christoffer Dall authored and Christoffer Dall committed Nov 6, 2017
1 parent 688c50a commit 40f4cba
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions virt/kvm/arm/arch_timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -649,11 +649,20 @@ int kvm_timer_hyp_init(void)
return err;
}

err = irq_set_vcpu_affinity(host_vtimer_irq, kvm_get_running_vcpus());
if (err) {
kvm_err("kvm_arch_timer: error setting vcpu affinity\n");
goto out_free_irq;
}

kvm_info("virtual timer IRQ%d\n", host_vtimer_irq);

cpuhp_setup_state(CPUHP_AP_KVM_ARM_TIMER_STARTING,
"kvm/arm/timer:starting", kvm_timer_starting_cpu,
kvm_timer_dying_cpu);
return 0;
out_free_irq:
free_percpu_irq(host_vtimer_irq, kvm_get_running_vcpus());
return err;
}

Expand Down

0 comments on commit 40f4cba

Please sign in to comment.