对于各种DMA、NAPI、RFS/RPS、SO_REUSEPORT,如果不了解底层,那么对于做应用层优化也只是空中楼阁。
本文以e1000驱动为例,试图理清网络驱动层的数据流、逻辑流。
关于上面的问题,什么时候再映射?
e1000的映射函数是e1000_tx_map(),被e1000_xmit_frame()调用,e1000_xmit_frame()是e1000的hard_start_xmit handler,通过发送报文主函数dev_queue_xmit()调用,而dev_queue_xmit()可能通过QoS层调用hard_start_xmit()或者不使用QoS直接调用hard_start_xmit()。
因篇幅问题不能全部显示,请点此查看更多更全内容