Thread (13 messages) 13 messages, 3 authors, 2020-09-30

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help