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_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to