• Mikulas Patocka's avatar
    dm ioctl: use kmalloc if possible · 9c5091f2
    Mikulas Patocka authored
    If the parameter buffer is small enough, try to allocate it with kmalloc()
    rather than vmalloc().
    
    vmalloc is noticeably slower than kmalloc because it has to manipulate
    page tables.
    
    In my tests, on PA-RISC this patch speeds up activation 13 times.
    On Opteron this patch speeds up activation by 5%.
    
    This patch introduces a new function free_params() to free the
    parameters and this uses new flags that record whether or not vmalloc()
    was used and whether or not the input buffer must be wiped after use.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    9c5091f2
dm-ioctl.c 38 KB