firecracker icon indicating copy to clipboard operation
firecracker copied to clipboard

MMDS: Investigate if it's more efficient to decouple the mmds rx from the tap rx

Open acatangiu opened this issue 7 years ago • 0 comments

I believe that since mmds packets are scarce and relatively latency-insensitive, it could be beneficial to take their processing out of the network rx fastpath.

Another side-effect of current design is that a mmds packet can trigger a tap-rx in the tx path - this should work fine, but might impact performance positively or negatively, and should also be investigated. More details:

NetEpollHandler::process_tx() {
    // The MMDS network stack works like a state machine, based on synchronous calls, and
    // without being added to any event loop. If any frame is accepted by the MMDS, we also
    // trigger a process_rx() which checks if there are any new frames to be sent, starting
    // with the MMDS network stack.
    let mut process_rx_for_mmds = false;
    ...
    // An incoming frame for the MMDS may trigger the transmission of a new message.
    if process_rx_for_mmds {
        self.process_rx();
    }
}

acatangiu avatar Oct 10 '18 12:10 acatangiu