• Junichi Nomura's avatar
    dm: use bioset_create_nobvec() · 3d8aab2d
    Junichi Nomura authored
    Since DM core uses bio_clone_fast() for both bio-based and request-based
    DM devices there is no need for DM's bioset to have a bvec mempool.
    
    With this patch, on arch with 4KB page for example, memory usage will be
    reduced by 64KB for each bio-based DM device and 1MB for each
    request-based DM device.
    
    For example, when you create 10,000 bio-based DM devices and 1,000
    request-based DM devices, memory usage of biovec under no load is:
      # grep biovec /proc/slabinfo
    
      biovec-256        418068 418068   4096  ...
      biovec-128             0      0   2048  ...
      biovec-64              0      0   1024  ...
      biovec-16              0      0    256  ...
    
    With this patch series applied, the usage becomes:
      # grep biovec /proc/slabinfo
    
      biovec-256           116    116   4096  ...
      biovec-128             0      0   2048  ...
      biovec-64              0      0   1024  ...
      biovec-16              0      0    256  ...
    
    So 4096 * (418068 - 116) = 1.6GB of memory is saved in this example.
    Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    3d8aab2d
dm.c 66.6 KB