[PATCH v2 0/2] KVM: irqbypass: XArray conversion and a deref fix

From: Like Xu
Date: Wed Aug 02 2023 - 01:17:28 EST


Hi,

When VMM(s) simultaneously create a large number of irqfds and register
their irqfds in the global consumers list, the global mutex contention
exponentially increases the average wait latency, which is no longer
tolerable on modern systems with a large number of CPU cores.

The patch set is intended to reduce this source of latency by
converting producers/consumers single linked list to XArray.

Please feel free to run more tests and share comments to move forward.

V1 -> V2 Changelog:
- Send the prerequisite fix as a series; (Alex W.)
- Keep producer and consumer connected and tracked; (Alex W.)
V1:
https://lore.kernel.org/kvm/20230801115646.33990-1-likexu@xxxxxxxxxxx/
https://lore.kernel.org/kvm/20230801085408.69597-1-likexu@xxxxxxxxxxx/

Like Xu (2):
KVM: eventfd: Fix NULL deref irqbypass producer
KVM: irqbypass: Convert producers/consumers linked list to
XArray

include/linux/irqbypass.h | 8 +--
virt/lib/irqbypass.c | 127 +++++++++++++++++++-------------------
2 files changed, 63 insertions(+), 72 deletions(-)


base-commit: 5a7591176c47cce363c1eed704241e5d1c42c5a6
--
2.41.0