Skip to content

Per-entrypoint DevMaps and Mailboxes #710

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: siphon
Choose a base branch
from
Draft

Conversation

FelixMcFelix
Copy link
Collaborator

@FelixMcFelix FelixMcFelix commented Mar 12, 2025

This PR provides every possible entrypoint with its own (mutex-wrapped) context, so that the Tx and Rx paths no longer contend over a single KRwLock. The role of these contexts is to provide a port lookup map for delivery to local ports in both underlay rx and loopback. These entrypoints are one per OPTE port (in the tx case), and one for every CPU on every underlay link (as we don't know the full set of thread bindings who might call into us). Addition/removal of a port then goes through all entrypoints one by one and updates them in turn.

The very useful part of this is that we have a convenient place to build and store chains of packets bound toward a single sender -- and on top of the siphon branch, we do have sets of packets needing batched up for delivery to mac. The Rx path now first deposits processed packets into chains by target port (keyed on MAC+VNI). On glasgow this looks to get us 16Gbps single stream (with no bump to aggregate/-P2 and upwards throughput).

Closes #689.

Base automatically changed from ingot-and-offload to master April 24, 2025 11:22
We still have a hilarious failure to remove resources *somewhere*,
causing havoc on underlay removal.
@FelixMcFelix FelixMcFelix changed the base branch from master to siphon May 29, 2025 15:49
We can now batch all packets up to the intended caller (!). Looking to
be around 16Gbps on `glasgow` zone-to-zone.
@FelixMcFelix FelixMcFelix changed the title Per-entrypoint DevMaps Per-entrypoint DevMaps and Mailboxes May 30, 2025
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