Re: <jemalloc>: jemalloc_arena.c:182: Failed assertion: "p[i] == 0"

From: Aleksandr Rybalko <ray_at_dlink.ua>
Date: Sat, 28 Apr 2012 23:17:03 +0300
On Sat, 28 Apr 2012 11:29:01 -0700
Jason Evans <jasone_at_FreeBSD.org> wrote:

> 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.

Yeah, found it. Thank you.

It is possible to hide such debug code under debug macro, so embedded
guys will be more happy about sizes? :) 

Thank you for that big job!

> 
> Jason_______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to
> "freebsd-current-unsubscribe_at_freebsd.org"


-- 
Aleksandr Rybalko <ray_at_dlink.ua>
Received on Sat Apr 28 2012 - 18:17:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:26 UTC