• Ian Rogers's avatar
    perf test: Avoid python leak sanitizer test failures · e293f4b1
    Ian Rogers authored
    Leak sanitizer will report memory leaks from python and the leak
    sanitizer output causes tests to fail. For example:
    
      ```
      $ perf test 98 -v
       98: perf script tests:
      --- start ---
      test child forked, pid 1272962
      DB test
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.046 MB /tmp/perf-test-script.x0EktdCel8/perf.data (8 samples) ]
      call_path_table((1, 0, 0, 0)
      call_path_table((2, 1, 0, 140339508617447)
      call_path_table((3, 2, 2, 0)
      call_path_table((4, 3, 3, 0)
      call_path_table((5, 4, 4, 0)
      call_path_table((6, 5, 5, 0)
      call_path_table((7, 6, 6, 0)
      call_path_table((8, 7, 7, 0)
      call_path_table((9, 8, 8, 0)
      call_path_table((10, 9, 9, 0)
      call_path_table((11, 10, 10, 0)
      call_path_table((12, 11, 11, 0)
      call_path_table((13, 12, 1, 0)
      sample_table((1, 1, 1, 1, 1, 1, 1, 8, -2058824120, 588306954119000, -1, 0, 0, 0, 0, 1, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      sample_table((2, 1, 1, 1, 1, 1, 1, 8, -2058824120, 588306954137053, -1, 0, 0, 0, 0, 1, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      sample_table((3, 1, 1, 1, 1, 1, 1, 8, -2058824120, 588306954140089, -1, 0, 0, 0, 0, 9, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      sample_table((4, 1, 1, 1, 1, 1, 1, 8, -2058824120, 588306954142376, -1, 0, 0, 0, 0, 155, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      sample_table((5, 1, 1, 1, 1, 1, 1, 8, -2058824120, 588306954144045, -1, 0, 0, 0, 0, 2493, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      sample_table((6, 1, 1, 1, 1, 1, 12, 77, -2046828595, 588306954145722, -1, 0, 0, 0, 0, 47555, 0, 0, 128933429281, 0, 0, 13, 0, 0, 0, -1, -1))
      call_path_table((14, 9, 14, 0)
      call_path_table((15, 14, 15, 0)
      call_path_table((16, 15, 0, -1040969624)
      call_path_table((17, 16, 16, 0)
      call_path_table((18, 17, 17, 0)
      call_path_table((19, 18, 18, 0)
      call_path_table((20, 19, 19, 0)
      call_path_table((21, 20, 13, 0)
      sample_table((7, 1, 1, 1, 2, 1, 13, 46, -2053700898, 588306954157436, -1, 0, 0, 0, 0, 964078, 0, 0, 128933429281, 0, 0, 21, 0, 0, 0, -1, -1))
      call_path_table((22, 1, 21, 0)
      call_path_table((23, 22, 22, 0)
      call_path_table((24, 23, 23, 0)
      call_path_table((25, 24, 24, 0)
      call_path_table((26, 25, 25, 0)
      call_path_table((27, 26, 26, 0)
      call_path_table((28, 27, 27, 0)
      call_path_table((29, 28, 28, 0)
      call_path_table((30, 29, 29, 0)
      call_path_table((31, 30, 30, 0)
      call_path_table((32, 31, 31, 0)
      call_path_table((33, 32, 32, 0)
      call_path_table((34, 33, 33, 0)
      call_path_table((35, 34, 20, 0)
      sample_table((8, 1, 1, 1, 2, 1, 20, 49, -2046878127, 588306954378624, -1, 0, 0, 0, 0, 2534317, 0, 0, 128933429281, 0, 0, 35, 0, 0, 0, -1, -1))
    
      =================================================================
      ==1272975==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 13628 byte(s) in 6 object(s) allocated from:
          #0 0x56354f60c092 in malloc (/tmp/perf/perf+0x29c092)
          #1 0x7ff25c7d02e7 in _PyObject_Malloc /build/python3.11/../Objects/obmalloc.c:2003:11
          #2 0x7ff25c7d02e7 in _PyObject_Malloc /build/python3.11/../Objects/obmalloc.c:1996:1
    
      SUMMARY: AddressSanitizer: 13628 byte(s) leaked in 6 allocation(s).
      --- Cleaning up ---
      ---- end(-1) ----
       98: perf script tests                                               : FAILED!
      ```
    
    Disable leak sanitizer when running specific perf+python tests to
    avoid this. This causes the tests to pass when run with leak
    sanitizer.
    Reviewed-by: default avatarAditya Gupta <adityag@linux.ibm.com>
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e293f4b1
script.sh 2.01 KB