Skip to content

MSI-X is not supported on aarch64 #2520

Description

@cagatay-y

MSI-X may allow us to support hypervisors that do not support legacy interrupts, which was the case for cloud-hypervisor (at least on x86). It also improves performance on x86 and supporting it on aarch64 may offer a similar benefit.

In order to add this feature, we need to figure out what is the correct pair of message address and message data. The implementation for x86 can serve as an example on how the values are written to the table once we figure out what they are. After configuration is implemented for x86, MSI-X related enum variants and declarations that are gated behind cfg(target_arch = "x86_64") will need to be modified to also allow aarch64. They cannot be removed completely for source files that are active under riscv, since we do not support PCI (which MSI-X is a feature of) at all on that platform.

It seems like message signalled interrupts on aarch64 need to be enabled before use. This configuration is probably interrupt controller specific, so any work on that will need to take into account the GIC version that is in use by hermit at that point.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions