]> git.baikalelectronics.ru Git - kernel.git/commit
dm ioctl: use kmalloc if possible
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 21 Dec 2012 20:23:36 +0000 (20:23 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 21 Dec 2012 20:23:36 +0000 (20:23 +0000)
commit4498c366c8d50076e38c8d9efdf90a9a984ab30d
tree8452b7ece373cf845bd745ff78750ae325a881d3
parentbb9ecb42fa4bba44685ee8c4ec29bcd58b1f999c
dm ioctl: use kmalloc if possible

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: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-ioctl.c