dev_queue_xmit 发生了什么?skb还会在哪里缓存

见 codebox/net/qdisk/xmit.log中保存了一份记录

调用关系

sch_direct_xmit --> dev_hard_start_xmit --> xmit_one --> netdev_start_xmit -->__netdev_start_xmit ---> ops->ndo_start_xmit --> e1000_xmit_frame

可以好好看看e1000_xmit_frame函数的实现,这是驱动的代码.

也就是时候从ip_finish_local一路下来就到驱动了

6506  0)               |                      ip_finish_output() {
6507  0)   0.023 us    |                        ipv4_mtu();
6508  0)               |                        ip_finish_output2() {
6509  0)   0.027 us    |                          skb_push();
6510  0)               |                          dev_queue_xmit() {
6511  0)               |                            __dev_queue_xmit() {
6512  0)   0.035 us    |                              dst_release();
6513  0)   0.151 us    |                              netdev_pick_tx();
6514  0)   0.029 us    |                              _raw_spin_lock();
6515  0)               |                              sch_direct_xmit() {
6516  0)               |                                validate_xmit_skb_list() {
6517  0)               |                                  validate_xmit_skb.isra.97.part.98() {
6518  0)               |                                    netif_skb_features() {
6519  0)   0.024 us    |                                      passthru_features_check();
6520  0)   0.026 us    |                                      skb_network_protocol();
6521  0)   0.788 us    |                                    }
6522  0)   1.137 us    |                                  }
6523  0)   1.453 us    |                                }
6524  0)   0.024 us    |                                _raw_spin_lock();
6525  0)               |                                dev_hard_start_xmit() {
6526  0)               |                                  e1000_xmit_frame [e1000e]() {
6527  0)   0.151 us    |                                    e1000_maybe_stop_tx [e1000e]();
6528  0)   0.028 us    |                                    e1000_maybe_stop_tx [e1000e]();
6529  0)   2.932 us    |                                  }
6530  0)   3.668 us    |                                }
6531  0)   0.026 us    |                                _raw_spin_lock();
6532  0)   6.545 us    |                              }
6533  0)   0.038 us    |                              __local_bh_enable_ip();
6534  0)   9.135 us    |                            }
6535  0)   9.525 us    |                          }
6536  0)   0.039 us    |                          __local_bh_enable_ip();
6537  0) + 10.858 us   |                        }
6538  0) + 11.445 us   |                      }

 

posted @ 2019-01-13 17:59  honpey  阅读(901)  评论(0编辑  收藏  举报