在进程退出时,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
另一途径:发送完成的(软)中断中释放。。。。
阅读(2889) | 评论(0) | 转发(0) |