mbox series

[v5,0/7] MSI-X support with qemu in stubdomain, and other related changes

Message ID cover.afa2d89161590f5193dd6bfd340c5e9347877aae.1710342968.git-series.marmarek@invisiblethingslab.com (mailing list archive)
Headers show
Series MSI-X support with qemu in stubdomain, and other related changes | expand

Message

Marek Marczykowski-Górecki March 13, 2024, 3:16 p.m. UTC
This series includes changes to make MSI-X working with Linux stubdomain and
especially Intel Wifi 6 AX210 card. This takes care of remaining reasons for
QEMU to access /dev/mem, but also the Intel Wifi card violating spec by putting
some registers on the same page as the MSI-X table.
Besides the stubdomain case (of which I care more), this is also necessary for
PCI-passthrough to work with lockdown enabled in dom0 (when QEMU runs in dom0).

See individual patches for details.

This series include also tests for MSI-X using new approach (by preventing QEMU
access to /dev/mem). But for it to work, it needs QEMU change that
makes use of the changes introduced here. It can be seen at
https://github.com/marmarek/qemu/commits/msix

Here is the pipeline that used the QEMU fork above:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1211237368

Marek Marczykowski-Górecki (7):
  x86/msi: passthrough all MSI-X vector ctrl writes to device model
  x86/msi: Extend per-domain/device warning mechanism
  x86/hvm: Allow access to registers on the same page as MSI-X table
  automation: prevent QEMU access to /dev/mem in PCI passthrough tests
  automation: switch to a wifi card on ADL system
  [DO NOT APPLY] switch to qemu fork
  [DO NOT APPLY] switch to alternative artifact repo

 Config.mk                                           |   4 +-
 automation/gitlab-ci/build.yaml                     |   4 +-
 automation/gitlab-ci/test.yaml                      |   4 +-
 automation/scripts/qubes-x86-64.sh                  |   9 +-
 automation/tests-artifacts/alpine/3.18.dockerfile   |   7 +-
 automation/tests-artifacts/kernel/6.1.19.dockerfile |   2 +-
 xen/arch/x86/hvm/vmsi.c                             | 224 ++++++++++++-
 xen/arch/x86/include/asm/msi.h                      |  15 +-
 xen/arch/x86/msi.c                                  |  50 ++-
 xen/common/kernel.c                                 |   1 +-
 xen/include/public/features.h                       |   8 +-
 11 files changed, 308 insertions(+), 20 deletions(-)

base-commit: 03cf7ca23e0e876075954c558485b267b7d02406

Comments

Marek Marczykowski-Górecki April 18, 2024, 2:18 p.m. UTC | #1
On Wed, Mar 13, 2024 at 04:16:05PM +0100, Marek Marczykowski-Górecki wrote:
> This series includes changes to make MSI-X working with Linux stubdomain and
> especially Intel Wifi 6 AX210 card. This takes care of remaining reasons for
> QEMU to access /dev/mem, but also the Intel Wifi card violating spec by putting
> some registers on the same page as the MSI-X table.
> Besides the stubdomain case (of which I care more), this is also necessary for
> PCI-passthrough to work with lockdown enabled in dom0 (when QEMU runs in dom0).
> 
> See individual patches for details.
> 
> This series include also tests for MSI-X using new approach (by preventing QEMU
> access to /dev/mem). But for it to work, it needs QEMU change that
> makes use of the changes introduced here. It can be seen at
> https://github.com/marmarek/qemu/commits/msix
> 
> Here is the pipeline that used the QEMU fork above:
> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1211237368
> 
> Marek Marczykowski-Górecki (7):
>   x86/msi: passthrough all MSI-X vector ctrl writes to device model
>   x86/msi: Extend per-domain/device warning mechanism
>   x86/hvm: Allow access to registers on the same page as MSI-X table
>   automation: prevent QEMU access to /dev/mem in PCI passthrough tests
>   automation: switch to a wifi card on ADL system
>   [DO NOT APPLY] switch to qemu fork
>   [DO NOT APPLY] switch to alternative artifact repo
> 
>  Config.mk                                           |   4 +-
>  automation/gitlab-ci/build.yaml                     |   4 +-
>  automation/gitlab-ci/test.yaml                      |   4 +-
>  automation/scripts/qubes-x86-64.sh                  |   9 +-
>  automation/tests-artifacts/alpine/3.18.dockerfile   |   7 +-
>  automation/tests-artifacts/kernel/6.1.19.dockerfile |   2 +-
>  xen/arch/x86/hvm/vmsi.c                             | 224 ++++++++++++-
>  xen/arch/x86/include/asm/msi.h                      |  15 +-
>  xen/arch/x86/msi.c                                  |  50 ++-
>  xen/common/kernel.c                                 |   1 +-
>  xen/include/public/features.h                       |   8 +-
>  11 files changed, 308 insertions(+), 20 deletions(-)
> 
> base-commit: 03cf7ca23e0e876075954c558485b267b7d02406
> -- 
> git-series 0.9.1

Ping, can I ask for a review?
Jan Beulich April 18, 2024, 2:22 p.m. UTC | #2
On 18.04.2024 16:18, Marek Marczykowski-Górecki wrote:
> On Wed, Mar 13, 2024 at 04:16:05PM +0100, Marek Marczykowski-Górecki wrote:
>> This series includes changes to make MSI-X working with Linux stubdomain and
>> especially Intel Wifi 6 AX210 card. This takes care of remaining reasons for
>> QEMU to access /dev/mem, but also the Intel Wifi card violating spec by putting
>> some registers on the same page as the MSI-X table.
>> Besides the stubdomain case (of which I care more), this is also necessary for
>> PCI-passthrough to work with lockdown enabled in dom0 (when QEMU runs in dom0).
>>
>> See individual patches for details.
>>
>> This series include also tests for MSI-X using new approach (by preventing QEMU
>> access to /dev/mem). But for it to work, it needs QEMU change that
>> makes use of the changes introduced here. It can be seen at
>> https://github.com/marmarek/qemu/commits/msix
>>
>> Here is the pipeline that used the QEMU fork above:
>> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1211237368
>>
>> Marek Marczykowski-Górecki (7):
>>   x86/msi: passthrough all MSI-X vector ctrl writes to device model
>>   x86/msi: Extend per-domain/device warning mechanism
>>   x86/hvm: Allow access to registers on the same page as MSI-X table
>>   automation: prevent QEMU access to /dev/mem in PCI passthrough tests
>>   automation: switch to a wifi card on ADL system
>>   [DO NOT APPLY] switch to qemu fork
>>   [DO NOT APPLY] switch to alternative artifact repo
>>
>>  Config.mk                                           |   4 +-
>>  automation/gitlab-ci/build.yaml                     |   4 +-
>>  automation/gitlab-ci/test.yaml                      |   4 +-
>>  automation/scripts/qubes-x86-64.sh                  |   9 +-
>>  automation/tests-artifacts/alpine/3.18.dockerfile   |   7 +-
>>  automation/tests-artifacts/kernel/6.1.19.dockerfile |   2 +-
>>  xen/arch/x86/hvm/vmsi.c                             | 224 ++++++++++++-
>>  xen/arch/x86/include/asm/msi.h                      |  15 +-
>>  xen/arch/x86/msi.c                                  |  50 ++-
>>  xen/common/kernel.c                                 |   1 +-
>>  xen/include/public/features.h                       |   8 +-
>>  11 files changed, 308 insertions(+), 20 deletions(-)
>>
>> base-commit: 03cf7ca23e0e876075954c558485b267b7d02406
>> -- 
>> git-series 0.9.1
> 
> Ping, can I ask for a review?

Sure, in due course. The series was not lost.

Jan