On 11/12/13, 3:38 PM, 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 ?
> 

After a bit of benchmarking Illumos switched to using kmem_alloc for LZ4
compression as well (discarding the stack allocations, because they were
fragile and didn't do much for performance). It'd be interesting to see
why kmem operations on FreeBSD are so inefficient under load - perhaps
some worthwhile refactoring work there? Or can you please post more
details of your testing setup?

Cheers,
-- 
Saso
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to