]> git.baikalelectronics.ru Git - kernel.git/commit
zbud: avoid accessing last unused freelist
authorChao Yu <chao2.yu@samsung.com>
Thu, 9 Oct 2014 22:30:04 +0000 (15:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 10 Oct 2014 02:26:03 +0000 (22:26 -0400)
commit1d964fe1c888a45b917523b7784e468fccc77ab9
tree62ca7125431238be94db07e1448af5196fb38763
parentda3c6784617d5b9ca0a926bd81a9c4d7bf3acdfa
zbud: avoid accessing last unused freelist

For now, there are NCHUNKS of 64 freelists in zbud_pool, the last
unbuddied[63] freelist linked with all zbud pages which have free chunks
of 63.  Calculating according to context of num_free_chunks(), our max
chunk number of unbuddied zbud page is 62, so none of zbud pages will be
added/removed in last freelist, but still we will try to find an unbuddied
zbud page in the last unused freelist, it is unneeded.

This patch redefines NCHUNKS to 63 as free chunk number in one zbud page,
hence we can decrease size of zpool and avoid accessing the last unused
freelist whenever failing to allocate zbud from freelist in zbud_alloc.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Cc: Seth Jennings <sjennings@variantweb.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/zbud.c