|
From: Greg C. <gre...@ya...> - 2011-07-07 22:11:15
|
Hi all, Using memcheck in 3.6.1 causes the following assertion on SUSE10. Memcheck: mc_main.c:5972 (mc_pre_clo_init): Assertion 'MAX_PRIMARY_ADDRESS == 0x7FFFFFFFFULL' failed. ==30960== at 0x3802B487: ??? (in /somepath/valgrind.3.6.1/lib/valgrind/memcheck-amd64-linux) The only argument is --error-limit=no This assertion doesn't show up on 3.4 or 3.5, but unfortunately both of those hang on the application. Any help is much appreciated. |
|
From: Julian S. <js...@ac...> - 2011-07-07 22:47:12
|
> mc_main.c:5972 (mc_pre_clo_init): Assertion 'MAX_PRIMARY_ADDRESS == > 0x7FFFFFFFFULL' failed. Did you change any #defines in the source code? Is this a clean 3.6.1. build? J |
|
From: Greg C. <gre...@ya...> - 2011-07-08 02:25:09
|
> Did you change any #defines in the source code? Is this a clean 3.6.1. build? #define VG_N_SEGMENTS 50000 Plus the failed attempt at extending valgrind to use more than 32GB # if VG_WORDSIZE == 8 ///gczajkow aspacem_maxAddr = (Addr)0x800000000 - 1; // 32G ///http://thread.gmane.org/gmane.comp.debugging.valgrind/7584/focus=7602 aspacem_maxAddr = (Addr)(0x800000000ULL << 2) - 1; // 128GB # define N_PRIMARY_BITS 21 Otherwise valgrind errors out with ==7560== Valgrind's memory management: out of memory: ==7560== newSuperblock's request for 4194304 bytes failed. ==7560== 33731608576 bytes have already been allocated. ==7560== Valgrind cannot continue. Sorry. Our processes under valgrind consume more than 32GB of memory, how can it be expanded to 128GB? Thanks Greg |
|
From: Julian S. <js...@ac...> - 2011-07-11 09:31:46
|
On Friday, July 08, 2011, Greg Czajkowski wrote: > > Did you change any #defines in the source code? Is this a clean 3.6.1. > > build? > > #define VG_N_SEGMENTS 50000 > > Plus the failed attempt at extending valgrind to use more than 32GB > > # if VG_WORDSIZE == 8 > ///gczajkow aspacem_maxAddr = (Addr)0x800000000 - 1; // 32G > ///http://thread.gmane.org/gmane.comp.debugging.valgrind/7584/focus=7602 > aspacem_maxAddr = (Addr)(0x800000000ULL << 2) - 1; // 128GB > # define N_PRIMARY_BITS 21 > > Otherwise valgrind errors out with > > ==7560== Valgrind's memory management: out of memory: > ==7560== newSuperblock's request for 4194304 bytes failed. > ==7560== 33731608576 bytes have already been allocated. > ==7560== Valgrind cannot continue. Sorry. > > Our processes under valgrind consume more than 32GB of memory, how can it > be expanded to 128GB? * change N_PRIMARY_BITS from 19 to 21 * change the assertions at the end of mc_main.c accordingly - MAX_PRIMARY_ADDRESS -> 4 * (existing value + 1) - 1 - for the MASK(1/2/4/8) assertions, set to zero the rightmost two '1' bits in the block of leading 1 bits, eg MASK(8) -> 0xFFFFFFE000000007ULL I think * change aspacem_maxAddr as you have above I _think_ that should do it. Not 100% sure tho. J |