Re: [PATCH] KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET

From: Paolo Bonzini
Date: Wed Dec 28 2022 - 08:22:49 EST


On 12/28/22 12:55, Woodhouse, David wrote:

IIRC the send_port and type aren't used from hcall_send so we could stick those in a union with a 'next' pointer and use it to build a list instead of having to allocate the array (pathological worst case 32KiB).

Yeah I thought about using a list. The union is doable as you say, but I wasn't sure if things were going to change in kvm_xen_evtchn_send later.

And the worst case is order 3, which is within PAGE_ALLOC_COSTLY_ORDER, so I decided to go with the array which only consumes memory on reset rather than always; it's much more likely that the array will be smaller than a page.

Paolo

Or if the union is a bit icky, we could just add the 'next' pointer unconditionally.