Re: [PATCH v7 5/7] KVM: arm64: pmu: Make overflow handler NMI safe
flat view
From: Alexandru Elisei <hidden>
Date: 2020-09-30 12:36:51
Also in:
kvm, kvmarm, lkml
Hi Will, On 9/28/20 6:57 PM, Will Deacon wrote:
On Thu, Sep 24, 2020 at 12:07:04PM +0100, Alexandru Elisei wrote:quoted
From: Julien Thierry <redacted> kvm_vcpu_kick() is not NMI safe. When the overflow handler is called from NMI context, defer waking the vcpu to an irq_work queue. A vcpu can be freed while it's not running by kvm_destroy_vm(). Prevent running the irq_work for a non-existent vcpu by calling irq_work_sync() on the PMU destroy path. Cc: Julien Thierry <redacted> Cc: Marc Zyngier <redacted> Cc: Will Deacon <redacted> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: James Morse <james.morse@arm.com> Cc: Suzuki K Pouloze <suzuki.poulose@arm.com> Cc: kvm@vger.kernel.org Cc: kvmarm@lists.cs.columbia.edu Signed-off-by: Julien Thierry <redacted> Tested-by: Sumit Garg <redacted> (Developerbox) [Alexandru E.: Added irq_work_sync()] Signed-off-by: Alexandru Elisei <redacted> --- I suggested in v6 that I will add an irq_work_sync() to kvm_pmu_vcpu_reset(). It turns out it's not necessary: a vcpu reset is done by the vcpu being reset with interrupts enabled, which means all the work has had a chance to run before the reset takes place.I don't understand this ^^
Marc had the same comment, I replied in his email. I thought about it and you're right, it doesn't make much sense.
But the patch itself looks good, so I'm going to queue this lot anyway!
Thank you for picking up the series! Thanks, Alex _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel