|
From: Philippe W. <phi...@sk...> - 2014-06-24 23:18:21
Attachments:
patch_cfsi_dedup.txt
|
Hello, The attached patch reduces the memory needed for the debuginfo by using a dedup pool allocator for the machine dependent part of the DiCfSI information. This touches some platform dependent code. I compiled and tested on x86/amd64/ppc32/ppc64. I compiled (not tested) on arm64. Compilation and/or testing on other platforms would be nice. If you run with --stats=yes -v -v -v, you will get nice statistics about the deduplication factor of the detup pool e.g. the below indicates that 21666 DiCFsi are deduplicated to be 171 uniq elements. --15159-- Reading syms from /home/philippe/valgrind/lock_read_var_info/memcheck/memcheck-amd64-linux --15159-- svma 0x0038000150, avma 0x0038000150 --15159-- object doesn't have a dynamic symbol table --15159-- dedupPA:di.storage.DiCfSI_m_pool 21666 allocs (171 uniq) 1 pools (16580 bytes free in last pool) --15159-- nr occurences of chains of len N, N-plicated keys, N-plicated elts --15159-- N= 0 : nr chain 607, nr keys 0, nr elts 0 --15159-- N= 1 : nr chain 154, nr keys 171, nr elts 171 --15159-- N= 2 : nr chain 7, nr keys 0, nr elts 0 --15159-- N= 3 : nr chain 1, nr keys 0, nr elts 0 --15159-- total nr of unique chains: 769, keys 171, elts 171 If you have the time to compile and test (in particular on s390/mips/arm), that would be nice. Feedback about performance and memory impact also welcome Thanks Philippe |