Skip to content
  • Dan Williams's avatar
    libnvdimm, dimm: Maximize label transfer size · d11cf4a7
    Dan Williams authored
    
    
    Use kvzalloc() to bypass the arbitrary PAGE_SIZE limit of label transfer
    operations. Given the expense of calling into firmware, maximize the
    amount of label data we transfer per call to be up to the total label
    space if allowed by the firmware.
    
    Instead of limiting based on PAGE_SIZE we can instead simply limit the
    maximum size based on either the config_size int he case of the get
    operation, or the length of the write based on the set operation.
    
    On a system with 24 NVDIMM modules each with a config_size of 128K and a
    maximum transfer size of 64K - 4, this patch reduces the init time for the
    label data from around 24 seconds down to between 4-5 seconds.
    
    Reviewed-by: default avatarToshi Kani <toshi.kani@hpe.com>
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    d11cf4a7