You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We currently have a few sets of culprits for calling format!() on errored packets:
opte::engine::dbg. There are places where we pass in a newly generated string to this function, however we gate the decision to print the string on a static mut switch. We need to move string formatting to fall after this check, otherwise we're always doing an expensive step.
Dtrace probes such as __dtrace_probe_bad__packet are making use of format!() to simplify error presentation, but these packets can potentially come from both the underlay and guest traffic.
The content you are editing has changed. Please copy your edits and refresh the page.
#475)
This PR replaces `InnerFlowId` with an equivalent C-ABI friendly struct,
from which we can directly pass pointers to our dtrace SDTs. This has
proven necessary as we are reconstructing this many times per packet in
both the UFT slowpath and fastpath.
Additionally, this makes partial progress on #460 by using the new
`DError` machinery whenever a packet is `Ok(Modified | Hairpin |
Bypass)` to elide string formats on layer/port processing. The `Err(_)`
and `Ok(Drop{ .. })` cases remain open work, but are less common and in
those cases we have at least removed a superfluous realloc + memcpy on
the formatted string.
From local IGB<->IGB results and comparing 4e2ad7e against master in CI,
this seems like O(10%) reduction in packet latency *spent in XDE*, with
comparable bandwidth increase.
Closes#462.
We currently have a few sets of culprits for calling
format!()
on errored packets:opte::engine::dbg
. There are places where we pass in a newly generated string to this function, however we gate the decision to print the string on astatic mut
switch. We need to move string formatting to fall after this check, otherwise we're always doing an expensive step.__dtrace_probe_bad__packet
are making use offormat!()
to simplify error presentation, but these packets can potentially come from both the underlay and guest traffic.Tasks
The text was updated successfully, but these errors were encountered: