Skip to content
  • Sergey Senozhatsky's avatar
    zram: rename zstrm find-release functions · 2aea8493
    Sergey Senozhatsky authored
    This has started as a 'add zlib support' work, but after some thinking I
    saw no blockers for a bigger change -- a switch to crypto API.
    
    We don't have an idle zstreams list anymore and our write path now works
    absolutely differently, preventing preemption during compression.  This
    removes possibilities of read paths preempting writes at wrong places
    and opens the door for a move from custom LZO/LZ4 compression backends
    implementation to a more generic one, using crypto compress API.
    
    This patch set also eliminates the need of a new context-less crypto API
    interface, which was quite hard to sell, so we can move along faster.
    
    benchmarks:
    
    (x86_64, 4GB, zram-perf script)
    
    perf reported run-time fio (max jobs=3).  I performed fio test with the
    increasing number of parallel jobs (max to 3) on a 3G zram device, using
    `static' data and the following crypto comp algorithms:
    
    	842, deflate, lz4, lz4hc, lzo
    
    the output was:
    
     - test running time (which can tell us what algorithms performs faster)
    
    and
    
     - zram mm_stat (which tells the compressed memory size, max used memory, etc).
    
    It's just for information.  for example, LZ4HC has twice the running
    time of LZO, but the compressed memory size is: 23592960 vs 34603008
    bytes.
    
      test-fio-zram-842
         197.907655282 seconds time elapsed
         201.623142884 seconds time elapsed
         226.854291345 seconds time elapsed
      test-fio-zram-DEFLATE
         253.259516155 seconds time elapsed
         258.148563401 seconds time elapsed
         290.251909365 seconds time elapsed
      test-fio-zram-LZ4
          27.022598717 seconds time elapsed
          29.580522717 seconds time elapsed
          33.293463430 seconds time elapsed
      test-fio-zram-LZ4HC
          56.393954615 seconds time elapsed
          74.904659747 seconds time elapsed
         101.940998564 seconds time elapsed
      test-fio-zram-LZO
          28.155948075 seconds time elapsed
          30.390036330 seconds time elapsed
          34.455773159 seconds time elapsed
    
    zram mm_stat-s (max fio jobs=3)
    
      test-fio-zram-842
      mm_stat (jobs1): 3221225472 673185792 690266112        0 690266112        0        0
      mm_stat (jobs2): 3221225472 673185792 690266112        0 690266112        0        0
      mm_stat (jobs3): 3221225472 673185792 690266112        0 690266112        0        0
      test-fio-zram-DEFLATE
      mm_stat (jobs1): 3221225472  24379392  37761024        0  37761024        0        0
      mm_stat (jobs2): 3221225472  24379392  37761024        0  37761024        0        0
      mm_stat (jobs3): 3221225472  24379392  37761024        0  37761024        0        0
      test-fio-zram-LZ4
      mm_stat (jobs1): 3221225472  23592960  37761024        0  37761024        0        0
      mm_stat (jobs2): 3221225472  23592960  37761024        0  37761024        0        0
      mm_stat (jobs3): 3221225472  23592960  37761024        0  37761024        0        0
      test-fio-zram-LZ4HC
      mm_stat (jobs1): 3221225472  23592960  37761024        0  37761024        0        0
      mm_stat (jobs2): 3221225472  23592960  37761024        0  37761024        0        0
      mm_stat (jobs3): 3221225472  23592960  37761024        0  37761024        0        0
      test-fio-zram-LZO
      mm_stat (jobs1): 3221225472  34603008  50335744        0  50335744        0        0
      mm_stat (jobs2): 3221225472  34603008  50335744        0  50335744        0        0
      mm_stat (jobs3): 3221225472  34603008  50335744        0  50339840        0        0
    
    This patch (of 8):
    
    We don't perform any zstream idle list lookup anymore, so
    zcomp_strm_find()/zcomp_strm_release() names are not representative.
    
    Rename to zcomp_stream_get()/zcomp_stream_put().
    
    Link: http://lkml.kernel.org/r/20160531122017.2878-2-sergey.senozhatsky@gmail.com
    
    
    Signed-off-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Acked-by: default avatarMinchan Kim <minchan@kernel.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2aea8493