Hi Sean,
Thanks for the detailed feedback. I've implemented v2 using unconditional
read_trylock() as you suggested.
Changes in v2:
- Use read_trylock() unconditionally (no in_hardirq() check)
- Apply trylock to both gpc lock acquisitions
- Return -EWOULDBLOCK on contention to use existing slow path
Changes from v1:
- v1 used irq_work deferral (rejected for code duplication)
- v2 uses trylock, leveraging existing slow path (cleaner)
Testing:
- PREEMPT_RT kernel: No crash with syzbot reproducer after 30+ min
- non-RT kernel: No regression
This minimal fix preserves compatibility with your planned gpc API cleanup.
Thanks,
Kamal
shaikh.kamal (1):
KVM: x86/xen: Use trylock for fast path event channel delivery
arch/x86/kvm/xen.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
--
2.43.0