]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 476535 - Difference in allocation size for massif/tests/overloaded-new between...
authorPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 5 Nov 2023 12:35:01 +0000 (13:35 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 5 Nov 2023 12:35:01 +0000 (13:35 +0100)
In the end all I could do was filter the results.

libc++ and libstdc++ allocate different sizes of stuff for their own usr.
That means that when we get to allocating aligned blocks there is some
slop (up to the alignment size) that gets counted. And the amount of
that slop depends on the prior (internal) allocations.

NEWS
massif/tests/Makefile.am
massif/tests/filter_new_aligned [new file with mode: 0755]
massif/tests/overloaded-new.post.exp
massif/tests/overloaded-new.post.exp-libstdc++ [deleted file]
massif/tests/overloaded-new.vgtest

diff --git a/NEWS b/NEWS
index e8c28439b4a91b77b4ed141f6cb0ffe00215d5ee..d861150bf6ec185dc4b7a3b6151d16d512f129f6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,7 @@ than mailing the developers (or mailing lists) directly -- bugs that
 are not entered into bugzilla tend to get forgotten about or ignored.
 
 476320  Build failure with GCC
+476535  Difference in allocation size for massif/tests/overloaded-new between clang++/libc++ and g++/libstdc++
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index 8d899d172b853805378bf721746c81511cb6fc0d..e4a21a42187dac9c0aaa1bdf7f541a0642cf7b00 100644 (file)
@@ -1,7 +1,7 @@
 
 include $(top_srcdir)/Makefile.tool-tests.am
 
-dist_noinst_SCRIPTS = filter_stderr filter_verbose
+dist_noinst_SCRIPTS = filter_stderr filter_verbose filer_new_aligned
 
 EXTRA_DIST = \
        alloc-fns-A.post.exp alloc-fns-A.stderr.exp alloc-fns-A.vgtest \
@@ -33,7 +33,6 @@ EXTRA_DIST = \
        null.post.exp null.stderr.exp null.vgtest \
        one.post.exp one.post.exp2 one.stderr.exp one.vgtest \
        overloaded-new.post.exp overloaded-new.post.exp-mips32 \
-       overloaded-new.post.exp-libstdc++ \
        overloaded-new.stderr.exp overloaded-new.vgtest \
        pages_as_heap.stderr.exp pages_as_heap.vgtest \
        peak.post.exp peak.stderr.exp peak.vgtest \
diff --git a/massif/tests/filter_new_aligned b/massif/tests/filter_new_aligned
new file mode 100755 (executable)
index 0000000..c542c41
--- /dev/null
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+../../tests/filter_addresses |
+
+sed 's/98\.[0-9][0-9]\^/98.XX^/' |
+sed 's/0                                                                   19[0-9].[0-9]/0                                                                   19X.X/' |
+awk '/  5 .* 16,000 /{print "  5         16,XXX           16,XXX           16,000           XXX            0";next}{print}' |
+awk '/  6 .* 56,000 /{print "  6         56,XXX           56,XXX           56,000           XXX            0";next}{print}' |
+awk '/  7 .* 60,000 /{print "  7         60,XXX           60,XXX           60,000           XXX            0";next}{print}' |
+awk '/  8 .* 100,000 /{print "  8        100,XXX          100,XXX          100,000           XXX            0";next}{print}' |
+awk '/  9 .* 100,000 /{print "  9        100,XXX          100,XXX          100,000           XXX            0";next}{print}' |
+awk '/ 10 .* 96,000 /{print " 10        104,XXX           96,XXX           96,000           XXX            0";next}{print}' |
+awk '/ 11 .* 92,000 /{print " 11        108,XXX           92,XXX           92,000           XXX            0";next}{print}' |
+awk '/ 12 .* 90,000 /{print " 12        110,XXX           90,XXX           90,000           XXX            0";next}{print}' |
+awk '/ 13 .* 88,000 /{print " 13        112,XXX           88,XXX           88,000           XXX            0";next}{print}' |
+awk '/ 14 .* 84,000 /{print " 14        116,XXX           84,XXX           84,000           XXX            0";next}{print}' |
+awk '/ 15 .* 44,000 /{print " 15        157,XXX           44,XXX           44,000           XXX            0";next}{print}' |
+awk '/ 16 .* 40,000 /{print " 16        161,XXX           40,XXX           40,000           XXX            0";next}{print}' |
+awk '/ 17 .* 0 /{print " 17        201,XXX                0                0             0            0";next}{print}' |
+sed 's/^99\.[0-9][0-9]%/99.XX%/' |
+sed 's/^->39\.[0-9][0-9]%/->39.XX%/' |
+sed 's/^->03\.[0-9][0-9]%/->03.XX%/' |
+sed 's/^->01\.[0-9][0-9]%/->01.XX%/'
+
+
+
+
+
index 264ba59da9160e1728b2fefa18333519a307bea0..eb741e7464123b7c84e67e954c337f0f3c48877b 100644 (file)
@@ -6,7 +6,7 @@ ms_print arguments: massif.out
 
 
     KB
-98.28^                                    #                                   
+98.XX^                                    #                                   
      |                                    #:                                  
      |                                    #:::                                
      |                                    #::::                               
@@ -27,7 +27,7 @@ ms_print arguments: massif.out
      |    ::              ::              #:::::              ::              
      |  ::::              ::              #:::::              ::              
    0 +----------------------------------------------------------------------->KB
-     0                                                                   196.6
+     0                                                                   19X.X
 
 Number of snapshots: 18
  Detailed snapshots: [9 (peak)]
@@ -40,36 +40,36 @@ Number of snapshots: 18
   2          8,016            8,016            8,000            16            0
   3         10,024           10,024           10,000            24            0
   4         12,032           12,032           12,000            32            0
-  5         16,216           16,216           16,000           216            0
-  6         56,368           56,368           56,000           368            0
-  7         60,392           60,392           60,000           392            0
-  8        100,640          100,640          100,000           640            0
-  9        100,640          100,640          100,000           640            0
-99.36% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->39.75% (40,000B) 0x........: main (overloaded-new.cpp:84)
+  5         16,XXX           16,XXX           16,000           XXX            0
+  6         56,XXX           56,XXX           56,000           XXX            0
+  7         60,XXX           60,XXX           60,000           XXX            0
+  8        100,XXX          100,XXX          100,000           XXX            0
+  9        100,XXX          100,XXX          100,000           XXX            0
+99.XX% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->39.XX% (40,000B) 0x........: main (overloaded-new.cpp:84)
 | 
-->39.75% (40,000B) 0x........: main (overloaded-new.cpp:87)
+->39.XX% (40,000B) 0x........: main (overloaded-new.cpp:87)
 | 
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:79)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:79)
 | 
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:80)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:80)
 | 
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:83)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:83)
 | 
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:86)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:86)
 | 
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:81)
+->01.XX% (2,000B) 0x........: main (overloaded-new.cpp:81)
 | 
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:82)
+->01.XX% (2,000B) 0x........: main (overloaded-new.cpp:82)
   
 --------------------------------------------------------------------------------
   n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
 --------------------------------------------------------------------------------
- 10        104,648           96,632           96,000           632            0
- 11        108,656           92,624           92,000           624            0
- 12        110,664           90,616           90,000           616            0
- 13        112,672           88,608           88,000           608            0
- 14        116,856           84,424           84,000           424            0
- 15        157,008           44,272           44,000           272            0
- 16        161,032           40,248           40,000           248            0
- 17        201,280                0                0             0            0
+ 10        104,XXX           96,XXX           96,000           XXX            0
+ 11        108,XXX           92,XXX           92,000           XXX            0
+ 12        110,XXX           90,XXX           90,000           XXX            0
+ 13        112,XXX           88,XXX           88,000           XXX            0
+ 14        116,XXX           84,XXX           84,000           XXX            0
+ 15        157,XXX           44,XXX           44,000           XXX            0
+ 16        161,XXX           40,XXX           40,000           XXX            0
+ 17        201,XXX                0                0             0            0
diff --git a/massif/tests/overloaded-new.post.exp-libstdc++ b/massif/tests/overloaded-new.post.exp-libstdc++
deleted file mode 100644 (file)
index db66bee..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
---------------------------------------------------------------------------------
-Command:            ./overloaded-new
-Massif arguments:   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 --ignore-fn=call_init --ignore-fn=pool
-ms_print arguments: massif.out
---------------------------------------------------------------------------------
-
-
-    KB
-98.16^                                    #                                   
-     |                                    #:                                  
-     |                                    #:::                                
-     |                                    #::::                               
-     |                                    #:::::::::::::::::::                
-     |                                    #:::::                              
-     |                                    #:::::                              
-     |                                    #:::::                              
-     |                     :::::::::::::::#:::::                              
-     |                    ::              #:::::                              
-     |                    ::              #:::::                              
-     |                    ::              #:::::                              
-     |                    ::              #:::::              :               
-     |                    ::              #:::::              ::::::::::::::: 
-     |                    ::              #:::::              ::              
-     |                    ::              #:::::              ::              
-     |                    ::              #:::::              ::              
-     |     :::::::::::::::::              #:::::              ::              
-     |    ::              ::              #:::::              ::              
-     |  ::::              ::              #:::::              ::              
-   0 +----------------------------------------------------------------------->KB
-     0                                                                   196.3
-
-Number of snapshots: 18
- Detailed snapshots: [9 (peak)]
-
---------------------------------------------------------------------------------
-  n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
---------------------------------------------------------------------------------
-  0              0                0                0             0            0
-  1          4,008            4,008            4,000             8            0
-  2          8,016            8,016            8,000            16            0
-  3         10,024           10,024           10,000            24            0
-  4         12,032           12,032           12,000            32            0
-  5         16,248           16,248           16,000           248            0
-  6         56,432           56,432           56,000           432            0
-  7         60,488           60,488           60,000           488            0
-  8        100,512          100,512          100,000           512            0
-  9        100,512          100,512          100,000           512            0
-99.49% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->39.80% (40,000B) 0x........: main (overloaded-new.cpp:84)
-| 
-->39.80% (40,000B) 0x........: main (overloaded-new.cpp:87)
-| 
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:79)
-| 
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:80)
-| 
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:83)
-| 
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:86)
-| 
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:81)
-| 
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:82)
-  
---------------------------------------------------------------------------------
-  n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
---------------------------------------------------------------------------------
- 10        104,520           96,504           96,000           504            0
- 11        108,528           92,496           92,000           496            0
- 12        110,536           90,488           90,000           488            0
- 13        112,544           88,480           88,000           480            0
- 14        116,760           84,264           84,000           264            0
- 15        156,944           44,080           44,000            80            0
- 16        161,000           40,024           40,000            24            0
- 17        201,024                0                0             0            0
index 2a61ff8b7a7892d8d41431e6601f16bc3fcca24a..31f47bb6014078d82d3288165ed0ba1faeb58ec7 100644 (file)
@@ -3,5 +3,5 @@ vgopts: --stacks=no --time-unit=B --massif-out-file=massif.out
 vgopts: --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook
 vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0
 vgopts: --ignore-fn=call_init --ignore-fn=pool
-post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses
+post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ./filter_new_aligned
 cleanup: rm massif.out