Skip to content

[Feature Request] support for resetting virtio devices #3074

Open
@cperciva

Description

@cperciva

Feature Request

During the FreeBSD boot process, it resets network devices. (Why? Good question.) When running in Firecrackers, this means resetting the vtnet device.

Describe the desired solution

When a status of 0 is written to the virtio device, it should reset.

It looks like the MMIO code in Firecracker gets this right, but it calls a _reset routine for the device and none of the devices have implemented it. As a result, the device is currently entering FAILED state instead.

Describe possible alternatives

FreeBSD's virtio driver doesn't actually notice that the device is in FAILED state, and Firecracker's devices continue to work despite being marked as FAILED -- so everything ends up working except for Firecracker logging warnings of ack virtio features in invalid state 0x8f and update virtio queue in invalid state 0x8f. But this (arguably buggy) behaviour of ignoring that the device has failed could change in the future, so it would be good to avoid having it marked as failed in the first place.

Additional context

Checks

  • Have you searched the Firecracker Issues database for similar requests?
  • Have you read all the existing relevant Firecracker documentation?
  • Have you read and understood Firecracker's core tenets?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority: LowIndicates that an issue or pull request should be resolved behind issues or pull requests labelled `Status: ParkedIndicates that an issues or pull request will be revisited later

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions