On Apr 28, 2012, at 5:09 AM, Aleksandr Rybalko wrote:
>>> On Apr 21, 2012, at 11:54 AM, David Wolfskill wrote:
>>>>
>>>> But contrib/jemalloc/src/arena.c contains a function,
>>>> arena_chunk_validate_zeroed():
>>>>
>>>> 175 static inline void
>>>> 176 arena_chunk_validate_zeroed(arena_chunk_t *chunk, size_t
>>>> run_ind) 177 {
>>>> 178 size_t i;
>>>> 179 UNUSED size_t *p = (size_t *)((uintptr_t)chunk +
>>>> (run_ind << LG_PAGE)); 180
>>>> 181 for (i = 0; i < PAGE / sizeof(size_t); i++)
>>>> 182 assert(p[i] == 0);
>>>> 183 }
>
> maybe it somehow related to low count of free memory, because I see
> that very frequently on my box. (Atheros AR7242 mips32be with 32M of
> RAM)
>
> After "#ifdef" of that function body, box behave good (seems) :)
Yes, arena_chunk_validate_zeroed() (which is debug-only code) has the side
effect of faulting in untouched pages, so it potentially increases physical
memory usage. In practice, this sanity checking has saved jemalloc from
regressions that would otherwise manifest as mysterious application memory
corruption (and would have prevented even more regressions, had it existed
earlier). You can disable it and many other performance-sacrificing debug
features by defining MALLOC_PRODUCTION in /etc/make.conf.
Jason_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"