Skip to content

viona: want F_EVENT_IDX support#1171

Open
rzezeski wants to merge 1 commit into
oxidecomputer:masterfrom
rzezeski:rpz/viona-evt-idx
Open

viona: want F_EVENT_IDX support#1171
rzezeski wants to merge 1 commit into
oxidecomputer:masterfrom
rzezeski:rpz/viona-evt-idx

Conversation

@rzezeski

Copy link
Copy Markdown

This adds F_EVENT_IDX support for all virtqueues, but for this commit we enable it for viona only. This is needed to support F_EVENT_IDX for the viona control queue, which is required so that the illumos viona device may offer it for the data queues. It was found that Tx completion interrupts are greatly reduced with this feature support, presumably due to the Linux driver's better use of avail.used_event for interrupt moderation.

Adding this support has shown me a 10x reduction in guest Tx completion interrupts when running iperf benchmarks.

We might want to consider another change that lands prior to this one that actively prevents the negotiation of F_EVENT_IDX. Currently, if the host offers it, propolis blindly passes it through to the guest which will happily enable it: leading to the condition where the host and guest use avail_event/used_event, but the viona ctrl queue implemented by propolis is still using the flags method, ultimately leading to a guest that hangs during boot because it cannot make progress.

We can either do that, or we can make extra sure that Omicron picks up the latest propolis before we land this feature in Helios.

This adds F_EVENT_IDX support for all virtqueues, but for this commit
we enable it for viona only. This is needed to support F_EVENT_IDX for
the viona control queue, which is required so that the illumos viona
device may offer it for the data queues. It was found that Tx
completion interrupts are greatly reduced with this feature support,
presumably due to the Linux driver's better use of `avail.used_event`
for interrupt moderation.
@rzezeski
rzezeski requested review from FelixMcFelix and iximeow July 14, 2026 19:01
@rzezeski

Copy link
Copy Markdown
Author

I have only tested this with an Ubuntu Server 24.04 guest thus far. I'll see about trying to test some other platforms, but I don't have the slightest idea on testing Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant