On 12.11.2013 17:45, Pawel Jakub Dawidek wrote:
On Tue, Nov 12, 2013 at 05:38:43PM +0200, Alexander Motin wrote:
Hi.

While doing some performance tests I've found that LZ4 compression in
ZFS on FreeBSD each time allocates hash memory directly from VM, that on
multi-core system under significant load may consume more CPU time then
the compression itself. On 64-bit illumos that memory is allocated on
stack, but FreeBSD's kernel stack is smaller and has no sufficient space
(16K). I've made quite simple patch to reduce the allocation overhead by
creating allocation cache, same as it is done for ZIO. While for 64bit
illumos this patch is a nop, smaller architectures may still benefit
from it, same as FreeBSD does.

Any comments about it: http://people.freebsd.org/~mav/lz4_alloc.patch ?

Isn't compression done using dedicated ZFS-only ZIO threads? Why can't
we just increase stack size for those threads?

Hmm. I haven't thought that way. May be we could, except there are two layers of wrappers of Illumos and FreeBSD taskqueue(9) KPI in between, that have no idea about stack size. And also in that way we will always want some more.

--
Alexander Motin
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to