[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-9.0 v2 06/19] hw/pci/msi: Restrict xen_is_pirq_msi() call
From: |
David Woodhouse |
Subject: |
Re: [PATCH-for-9.0 v2 06/19] hw/pci/msi: Restrict xen_is_pirq_msi() call to Xen |
Date: |
Tue, 14 Nov 2023 10:44:30 -0500 |
User-agent: |
K-9 Mail for Android |
On 14 November 2023 10:22:23 GMT-05:00, "Philippe Mathieu-Daudé"
<philmd@linaro.org> wrote:
>On 14/11/23 16:13, David Woodhouse wrote:
>> On 14 November 2023 09:38:02 GMT-05:00, "Philippe Mathieu-Daudé"
>> <philmd@linaro.org> wrote:
>>> Similarly to the restriction in hw/pci/msix.c (see commit
>>> e1e4bf2252 "msix: fix msix_vector_masked"), restrict the
>>> xen_is_pirq_msi() call in msi_is_masked() to Xen.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>
>> Hm, we do also support the Xen abomination of snooping on MSI table writes
>> to see if they're targeted at a Xen PIRQ, then actually unmasking the MSI
>> from QEMU when the guest binds the corresponding event channel to that PIRQ.
>>
>> I think this is going to break in CI as kvm_xen_guest.py does deliberately
>> exercise that use case, doesn't it?
>
>Hmmm I see what you mean.
>
>So you mentioned these checks:
>
>- host Xen accel
>- Xen accel emulated to guest via KVM host accel
>
>Maybe we need here:
>
>- guest expected to run Xen
>
> Being (
> Xen accel emulated to guest via KVM host accel
> OR
> host Xen accel
> )
>
>If so, possibly few places incorrectly check 'xen_enabled()'
>instead of this 'xen_guest()'.
I think xen_is_pirq_msi() had that test built in, didn't it? Adding a
'xen_enabled() &&' prefix was technically redundant?
What's the actual problem we're trying to solve here? That we had two separate
implementations of xen_is_pirq_msi() (three if you count an empty stub?) which
are resolved at link time and prevent you from running Xen-accel and KVM-accel
VMs within the same QEMU process?
>"Xen on KVM" is a tricky case...
>
>> I deliberately *didn't* switch to testing the Xen PV net device, with a
>> comment that testing MSI and irqchip permutations was far more entertaining.
>> So I hope it should catch this?
>
>¯\_(ツ)_/¯
I believe that if you push your branch to a gitlab tree with the right CI
variables defined, it'll run all the CI? And I *hope* it fails with this patch.
It's precisely the kind of thing I was *intending* to catch with the testing!
- Re: [PATCH-for-9.0 v2 01/19] tests/avocado: Add 'guest:xen' tag to tests running Xen guest, (continued)
- [PATCH-for-9.0 v2 02/19] sysemu/xen: Forbid using Xen headers in user emulation, Philippe Mathieu-Daudé, 2023/11/14
- [PATCH-for-9.0 v2 03/19] sysemu/xen-mapcache: Check Xen availability with CONFIG_XEN_IS_POSSIBLE, Philippe Mathieu-Daudé, 2023/11/14
- [PATCH-for-9.0 v2 04/19] system/physmem: Do not include 'hw/xen/xen.h' but 'sysemu/xen.h', Philippe Mathieu-Daudé, 2023/11/14
- [PATCH-for-9.0 v2 05/19] hw/display: Restrict xen_register_framebuffer() call to Xen, Philippe Mathieu-Daudé, 2023/11/14
- [PATCH-for-9.0 v2 06/19] hw/pci/msi: Restrict xen_is_pirq_msi() call to Xen, Philippe Mathieu-Daudé, 2023/11/14
[PATCH-for-9.0 v2 07/19] hw/xen: Remove unnecessary xen_hvm_inject_msi() stub, Philippe Mathieu-Daudé, 2023/11/14
[PATCH-for-9.0 v2 08/19] hw/xen: Remove unused Xen stubs, Philippe Mathieu-Daudé, 2023/11/14
[RFC PATCH-for-9.0 v2 09/19] hw/block/xen_blkif: Align structs with QEMU_ALIGNED() instead of #pragma, Philippe Mathieu-Daudé, 2023/11/14
[PATCH-for-9.0 v2 10/19] hw/xen: Rename 'ram_memory' global variable as 'xen_memory', Philippe Mathieu-Daudé, 2023/11/14
[PATCH-for-9.0 v2 11/19] hw/xen/xen_arch_hvm: Rename prototypes using 'xen_arch_' prefix, Philippe Mathieu-Daudé, 2023/11/14