Skip to content

virtio: consider avoiding dynamic dispatch with enum_dispatch #989

Closed
@mkroening

Description

@mkroening

Before 02860f2, there was an enum for abstracting over split and packed virtqueues:

pub enum Virtq {
    Packed(PackedVq),
    Split(SplitVq),
}

Currently, we are using a trait via Rc<dyn Virtq> instead of Rc<Virtq>.

We need to consider automating the previous enum-based static dispatch via enum_dispatch for performance.
This would be a nice fit because restricting the set of implementors is no problem for us.

This might not have a too much of an impact, depending on how hot these dynamic dispatches are right now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions