• Joe Thornber's avatar
    dm cache: improve discard support · 7ae34e77
    Joe Thornber authored
    Safely allow the discard blocksize to be larger than the cache blocksize
    by using the bio prison's range locking support.  This also improves
    discard performance considerly because larger discards are issued to the
    dm-cache device.  The discard blocksize was always intended to be
    greater than the cache blocksize.  But until now it wasn't implemented
    safely.
    
    Also, by safely restoring the ability to have discard blocksize larger
    than cache blocksize we're able to significantly reduce the memory used
    for the cache's discard bitset.  Before, with a small discard blocksize,
    the discard bitset could get quite large because its size is a function
    of the discard blocksize and the origin device's size.  For example,
    previously, using a 32KB cache blocksize with a 40TB origin resulted in
    1280MB of incore memory use for the discard bitset!  Now, the discard
    blocksize is scaled up accordingly to ensure the discard bitset is
    capped at 2**14 bits, or 16KB.
    Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    7ae34e77
dm-cache-target.c 79 KB