]> 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)
commit50c2f5e495a2a6612d54d1a003c3726c77f03141
tree8452b7ece373cf845bd745ff78750ae325a881d3
parent8ff5763c3a9f36243def494fa60de7bafc43f7e8
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