[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_
From: |
David Woodhouse |
Subject: |
Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ |
Date: |
Tue, 20 Dec 2022 17:29:04 +0000 |
User-agent: |
K-9 Mail for Android |
On 20 December 2022 17:25:31 GMT, Paul Durrant <xadimgnik@gmail.com> wrote:
>On 20/12/2022 16:27, David Woodhouse wrote:
>>
>>
>> On 20 December 2022 13:56:39 GMT, Paul Durrant <xadimgnik@gmail.com> wrote:
>>> The callback via is essentially just another line interrupt but its
>>> assertion is closely coupled with the vcpu upcall_pending bit. Because that
>>> is being dealt with in-kernel then the via should be dealt with in-kernel,
>>> right?
>>
>> Not right now, because there's not a lot of point in kernel acceleration in
>> the case that it's delivered as GSI. There's no per-vCPU delivery, so it
>> doesn't get used for IPI, for timers. None of the stuff we want to
>> accelerate in-kernel. Only the actual PV drivers.
>>
>> If we do FIFO event channels in the future then the kernel will probably
>> need to own those; they need spinlocks and you can have *both* userspace and
>> kernel delivering with test-and-set-bit sequences like you can with 2level.
>>
>> Even so, I was tempted to add a VFIO-like eventfd pair for the vCPU0
>> evtchn_upcall_pending and let the kernel drive it... but qemu doesn't even
>> do the EOI side of that as $DEITY intended, so I didn't.
>
>My point was that clearing upcall_pending is essentially the equivalent of
>EOI-at-device i.e. it's the thing that drops the line. So, without some form
>of interception, we need some way to check it at an appropriate time... and as
>you say, there may be no exit to VMM for EOI of the APIC. So when?
If we have an in-kernel APIC then it has a notifier callback on EOI and we can
poll evtchn_upcall_pending then. That's another point in favour of handling it
in kernel.
And for userspace APIC we *do* get an exit of course... but QEMU lacks that
notifier mechanism for EOI of pseudo-level interrupts for that "should it still
be pending?" check.
- Re: [RFC PATCH v2 13/22] i386/xen: implement HYPERVISOR_memory_op, (continued)
- [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/09
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, Paul Durrant, 2022/12/12
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/12
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, Paul Durrant, 2022/12/12
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/15
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, Paul Durrant, 2022/12/20
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/20
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, Paul Durrant, 2022/12/20
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ,
David Woodhouse <=
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/28
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/20
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, Paul Durrant, 2022/12/21
- Re: [RFC PATCH v2 20/22] i386/xen: HVMOP_set_param / HVM_PARAM_CALLBACK_IRQ, David Woodhouse, 2022/12/21
[RFC PATCH v2 09/22] pc_piix: allow xenfv machine with XEN_EMULATE, David Woodhouse, 2022/12/09
[RFC PATCH v2 05/22] xen-platform-pci: allow its creation with XEN_EMULATE mode, David Woodhouse, 2022/12/09
[RFC PATCH v2 11/22] i386/xen: implement HYPERCALL_xen_version, David Woodhouse, 2022/12/09