8000 libkrun: report the net worker's rx stall upstream · Issue #1180 · nixidae/nixidae · GitHub
[go: up one dir, main page]

Skip to content

libkrun: report the net worker's rx stall upstream #1180

Open

Description

@Lillecarl

Our fork nixidae/libkrun carries a fix (87716f7b) that upstream libkrun does not have. User decides whether to report it to libkrun/libkrun.

The bug, in src/devices/src/virtio/net/worker/unix.rs:

  • When the guest's rx queue is full, the worker defers a frame and turns rx notifications off.
  • The guest then refills its queue without a kick.
  • The backend socket is edge-triggered, so nothing wakes the worker. Rx stops for good.
  • Queue::enable_notification returns true when buffers arrived in between. The old code ignores that answer. The fix re-arms and loops while it returns true.

Evidence (passt uplink, sustained iperf3 to the guest):

  • libkrun's socket held 211 KB unread, passt's 24 KB.
  • The guest showed no drops, free rx buffers, and its last rx 674 s earlier.
  • 2 of 6 by-hand runs stalled before the fix, 0 of 8 after.

Assisted-By: Claude Opus 5.5

Activity

  1. added
    upstreamWaits on a change outside nixidae: Nix, nixpkgs, kr8s, containerd
    needs decisionWaits on a maintainer decision, not on work
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs decisionWaits on a maintainer decision, not on worksource: vivariumConcerns the vivarium sourceupstreamWaits on a change outside nixidae: Nix, nixpkgs, kr8s, containerd

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0