Skip to content

iommu/riscv: prefer WSI on IGS=BOTH when wired IRQs are described - #343

Open
gougou1104 wants to merge 1 commit into
RVCK-Project:rvck-6.6from
gougou1104:rvck-6.6
Open

iommu/riscv: prefer WSI on IGS=BOTH when wired IRQs are described#343
gougou1104 wants to merge 1 commit into
RVCK-Project:rvck-6.6from
gougou1104:rvck-6.6

Conversation

@gougou1104

@gougou1104 gougou1104 commented Jul 22, 2026

Copy link
Copy Markdown

fixed: #342

driver inclusion
category: bugfix
Link: #342
Reference: https://lkml.org/lkml/2026/5/19/1406


The RISC-V IOMMU spec defines IGS=BOTH as supporting both MSI and WSI, with software selecting the path. The DT path already behaves as expected by selecting WSI when wired IRQ resources are described. The ACPI path, however, currently falls back to MSI even when firmware describes wired IRQ resources.

Use firmware-described wired IRQ resources as the trigger to select WSI for IGS=BOTH:

  • DT: "interrupts" present, no "msi-parent"
  • ACPI: DSDT _CRS Interrupt() descriptors (mainline does not yet parse the RIMT Interrupt Wire Array)

When triggered, rewrite igs to IGS_WSI and reuse the existing WSI handling. Keep the existing behaviour otherwise.

Fixes: d5f88ac ("iommu/riscv: Add support for platform msi")

driver inclusion
category: bugfix
Link: RVCK-Project#342
Reference: https://lkml.org/lkml/2026/5/19/1406

--------------------------------

The RISC-V IOMMU spec defines IGS=BOTH as supporting both MSI and
WSI, with software selecting the path. The DT path already behaves
as expected by selecting WSI when wired IRQ resources are described.
The ACPI path, however, currently falls back to MSI even when
firmware describes wired IRQ resources.

Use firmware-described wired IRQ resources as the trigger to select
WSI for IGS=BOTH:
  - DT: "interrupts" present, no "msi-parent"
  - ACPI: DSDT _CRS Interrupt() descriptors
    (mainline does not yet parse the RIMT Interrupt Wire Array)

When triggered, rewrite igs to IGS_WSI and reuse the existing WSI
handling. Keep the existing behaviour otherwise.

Fixes: d5f88ac ("iommu/riscv: Add support for platform msi")
Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
Signed-off-by: Li Hongbin <lihongbin@lanxincomputing.com>
@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/29907454871

参数解析结果
args value
repository RVCK-Project/rvck
head ref pull/343/head
base ref rvck-6.6
LAVA repo RVCK-Project/lavaci
LAVA hardware ['qemu']
LAVA Testcase path lava-testcases/common-test/ltp/ltp.yaml
need run job kunit-test,kernel-build,check-patch,lava-trigger

测试完成

详细结果:
check result
kunit-test success
kernel-build success
check-patch failure
lava-trigger-qemu success
lava-trigger-sg2042 skipped
lava-trigger-k1 skipped
lava-trigger-lpi4a skipped

Kunit Test Result

[09:23:28] Testing complete. Ran 482 tests: passed: 465, skipped: 17

Kernel Build Result

Check Patch Result

Total Errors 2
Total Warnings 2

LAVA Check (qemu)

args value
testcase_repo RVCK-Project/lavaci
lava_template lava-job-template/qemu/qemu-ltp.yaml
testcase_path lava-testcases/common-test/ltp/ltp.yaml
kernel_download_url http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/RVCK-Project/rvck/343_29907454871_1/Image
initramfs_download_url http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/RVCK-Project/rvck/343_29907454871_1/initramfs.img
rootfs_download_url https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/openEuler24.03-LTS-SP1/openeuler-rootfs.img.zst
testcase_ref main
testitem_name RVCK-Project_rvck_pull_request_target_343__common-test_qemu

result: Lava check done!

@unicornx unicornx added the LanxinComputing 蓝芯算力 label Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

LanxinComputing 蓝芯算力

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IOMMU ACPI路径下MSI中断/线中断选择问题

3 participants