1. 18 May, 2012 1 commit
    • Joonsoo Kim's avatar
      slub: fix a memory leak in get_partial_node() · 02d7633f
      Joonsoo Kim authored
      In the case which is below,
      
      1. acquire slab for cpu partial list
      2. free object to it by remote cpu
      3. page->freelist = t
      
      then memory leak is occurred.
      
      Change acquire_slab() not to zap freelist when it works for cpu partial list.
      I think it is a sufficient solution for fixing a memory leak.
      
      Below is output of 'slabinfo -r kmalloc-256'
      when './perf stat -r 30 hackbench 50 process 4000 > /dev/null' is done.
      
      ***Vanilla***
      Sizes (bytes)     Slabs              Debug                Memory
      ------------------------------------------------------------------------
      Object :     256  Total  :     468   Sanity Checks : Off  Total: 3833856
      SlabObj:     256  Full   :     111   Redzoning     : Off  Used : 2004992
      SlabSiz:    8192  Partial:     302   Poisoning     : Off  Loss : 1828864
      Loss   :       0  CpuSlab:      55   Tracking      : Off  Lalig:       0
      Align  :       8  Objects:      32   Tracing       : Off  Lpadd:       0
      
      ***Patched***
      Sizes (bytes)     Slabs              Debug                Memory
      ------------------------------------------------------------------------
      Object :     256  Total  :     300   Sanity Checks : Off  Total: 2457600
      SlabObj:     256  Full   :     204   Redzoning     : Off  Used : 2348800
      SlabSiz:    8192  Partial:      33   Poisoning     : Off  Loss :  108800
      Loss   :       0  CpuSlab:      63   Tracking      : Off  Lalig:       0
      Align  :       8  Objects:      32   Tracing       : Off  Lpadd:       0
      
      Total and loss number is the impact of this patch.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Signed-off-by: default avatarJoonsoo Kim <js1304@gmail.com>
      Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
      02d7633f
  2. 16 May, 2012 2 commits
  3. 10 May, 2012 1 commit
  4. 08 May, 2012 1 commit
  5. 31 Mar, 2012 35 commits