TIPS/LinuxKernel/free_skb

Last-modified: 2007-09-14 (金) 01:08:29

kfree_skb()

  • users>1なら、users--してreturn
  • users==1なら、誰も参照していないので__free_skb()へ

__kfree_skb()

  • dstの(バッファの?)refcntをデクリメントする
  • 最終的にkfree_skbmem()へ

kfree_skbmem()

  • skb_release_data()をコールし、データ部をkreeする
  • kmem_cache_free()でフリー?
    • skb->kcloneの場合わけでkmem_cache_free()の方法を替えている
    • __cache_free()ルーチンをコール
      • __cache_free()のなかでcacheへ戻す?

kfree_skb_fast()

  • 後処理を無くして早くkfree_skbするもの
    • bufferをdirtyなまま開放?
  • 2.4.22でもバグがありパッチがでていた
  • 2.6.9では存在していたが、2.6.15では存在しなくなった。2.4台の遺物か?