skb释放过程

3110阅读 0评论2014-03-04 humjb_1983
分类:LINUX

在进程退出时,skb释放的大致流程为
用户态exit()->
  内核do_exit()->
    exit_files->
      put_files_struct->
        close_files->
          filp_close->
            __fput->
              file->f_op->release(inode, file)->
                sock_close->
                  sock_release->
                    inet_release->
                      sk->sk_prot->close(sk, timeout)->
                        tcp_close->
                          __kfree_skb->
                            kfree_skbmem
                              skb_release_data //释放data的page
                              kmem_cache_free  //从slab中释放skb数据结构
                          release_sock
                          sock_put
  另一途径:发送完成的(软)中断中释放。。。。       
上一篇:网卡顺序固化过程
下一篇:内存分配失败问题