diff options
author | Rasmus Villemoes <linux@rasmusvillemoes.dk> | 2018-02-22 01:45:43 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-02-22 02:35:43 +0300 |
commit | b1a8a7a70043400d1e685899548c92b92f640d71 (patch) | |
tree | 4295e3cb0440b43ad6a2b95a777b4bccb858bdb6 /mm/zpool.c | |
parent | 7ba716698cc53f8d5367766c93c538c7da6c68ce (diff) | |
download | linux-b1a8a7a70043400d1e685899548c92b92f640d71.tar.xz |
ida: do zeroing in ida_pre_get()
As far as I can tell, the only place the per-cpu ida_bitmap is populated
is in ida_pre_get. The pre-allocated element is stolen in two places in
ida_get_new_above, in both cases immediately followed by a memset(0).
Since ida_get_new_above is called with locks held, do the zeroing in
ida_pre_get, or rather let kmalloc() do it. Also, apparently gcc
generates ~44 bytes of code to do a memset(, 0, 128):
$ scripts/bloat-o-meter vmlinux.{0,1}
add/remove: 0/0 grow/shrink: 2/1 up/down: 5/-88 (-83)
Function old new delta
ida_pre_get 115 119 +4
vermagic 27 28 +1
ida_get_new_above 715 627 -88
Link: http://lkml.kernel.org/r/20180108225634.15340-1-linux@rasmusvillemoes.dk
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Acked-by: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/zpool.c')
0 files changed, 0 insertions, 0 deletions