Files
rockchip-kernel/include/uapi/linux
David Woodhouse 40da8ccd72 KVM: x86/xen: Add event channel interrupt vector upcall
It turns out that we can't handle event channels *entirely* in userspace
by delivering them as ExtINT, because KVM is a bit picky about when it
accepts ExtINT interrupts from a legacy PIC. The in-kernel local APIC
has to have LVT0 configured in APIC_MODE_EXTINT and unmasked, which
isn't necessarily the case for Xen guests especially on secondary CPUs.

To cope with this, add kvm_xen_get_interrupt() which checks the
evtchn_pending_upcall field in the Xen vcpu_info, and delivers the Xen
upcall vector (configured by KVM_XEN_ATTR_TYPE_UPCALL_VECTOR) if it's
set regardless of LAPIC LVT0 configuration. This gives us the minimum
support we need for completely userspace-based implementation of event
channels.

This does mean that vcpu_enter_guest() needs to check for the
evtchn_pending_upcall flag being set, because it can't rely on someone
having set KVM_REQ_EVENT unless we were to add some way for userspace to
do so manually.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
2021-02-04 14:19:39 +00:00
..
2020-08-22 10:53:12 +01:00
2020-05-28 11:22:14 +02:00
2019-12-18 18:07:31 +01:00
2020-08-12 10:58:00 -07:00
2020-10-09 12:47:02 -06:00
2020-12-08 15:54:16 +01:00
2019-10-09 22:31:14 -04:00
2019-09-25 17:51:39 -07:00
2019-08-02 14:44:02 +10:00
2020-10-01 15:03:40 -04:00
2020-04-27 16:29:41 +05:30
2020-07-19 19:20:22 -07:00
2020-06-24 21:34:11 +02:00
2020-05-14 16:44:25 +02:00
2020-05-28 22:09:47 -04:00
2020-08-27 08:01:47 -07:00
2020-07-19 19:20:22 -07:00
2020-07-13 15:32:56 -07:00
2020-04-20 12:43:24 -07:00
2020-07-24 17:12:41 -07:00
2020-08-27 07:55:59 -07:00
2020-12-09 12:04:01 -07:00
2019-09-08 15:37:04 +02:00
2020-11-26 14:19:10 +01:00
2020-05-21 08:20:35 -06:00
2020-03-29 22:30:57 -07:00
2020-08-18 15:44:44 +02:00
2020-08-27 16:06:47 -04:00
2020-07-09 12:38:41 -07:00
2020-01-18 09:19:18 -05:00
2019-10-02 20:32:27 -06:00
2019-07-30 20:34:34 +02:00
2020-05-21 17:04:07 -07:00
2020-03-29 22:30:57 -07:00
2019-12-18 18:07:31 +01:00
2019-12-09 09:59:07 +01:00
2020-03-29 23:29:08 +02:00
2020-12-03 16:21:08 -07:00
2020-10-23 11:55:28 -04:00
2020-10-23 11:55:28 -04:00
2019-08-01 21:49:46 +02:00
2020-07-13 15:32:56 -07:00
2020-06-24 07:51:01 +02:00