kmem_cache: do not ignore alignment requirements

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
zfs: align zio buffers to a page boundary

Since ARC buffers are used directly as a read page cache they have to be
aligned to a page boundary.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
mempool: introduce page memory allocator

This allocator is meant for objects to large for mempools but still fitting
inside one page. In such case no additional metadata needs to be stored.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
mempool: make large memory allocator less wasteful

If the requested alignment is smaller than a page the header and the
begining of the allocated block can be in the same page, which can
save some memory.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>