• Hans Holmberg's avatar
    lightnvm: pblk: add padding distribution sysfs attribute · 5d149bfa
    Hans Holmberg authored
    When pblk receives a sync, all data up to that point in the write buffer
    must be comitted to persistent storage, and as flash memory comes with a
    minimal write size there is a significant cost involved both in terms
    of time for completing the sync and in terms of write amplification
    padded sectors for filling up to the minimal write size.
    
    In order to get a better understanding of the costs involved for syncs,
    Add a sysfs attribute to pblk: padded_dist, showing a normalized
    distribution of sectors padded. In order to facilitate measurements of
    specific workloads during the lifetime of the pblk instance, the
    distribution can be reset by writing 0 to the attribute.
    
    Do this by introducing counters for each possible padding:
    {0..(minimal write size - 1)} and calculate the normalized distribution
    when showing the attribute.
    Signed-off-by: default avatarHans Holmberg <hans.holmberg@cnexlabs.com>
    Signed-off-by: default avatarJavier González <javier@cnexlabs.com>
    Rearranged total_buckets statement in pblk_sysfs_get_padding_dist
    Signed-off-by: default avatarMatias Bjørling <mb@lightnvm.io>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    5d149bfa
pblk-init.c 27.9 KB