uftrace icon indicating copy to clipboard operation
uftrace copied to clipboard

ARM 32-bit test result

Open honggyukim opened this issue 4 years ago • 3 comments

I've tested our tests on ARM 32-bit and here is the result.

Test case                 pg             finstrument-fu
------------------------: O0 O1 O2 O3 Os O0 O1 O2 O3 Os
002 argument            : OK OK OK OK NG OK OK NG OK OK    # random failure
003 thread              : NG OK OK OK OK OK OK OK OK OK    # random failure
013 signal              : NG OK OK OK OK OK OK OK OK OK    # random failure
014 ucontext            : OK NG OK OK NG OK OK OK OK OK    # random failure
022 filter_kernel       : NG NG NG NG NG NG NG TM NG NG
033 filter_demangle3    : OK OK NG OK OK OK OK OK OK OK    # random failure
035 filter_demangle5    : OK OK OK OK OK OK OK NG OK OK    # random failure
043 full_demangle       : NG NG NG NG NG NG NG NG NG NG
045 report_avg_self     : OK OK OK OK OK NG OK OK OK OK    # random failure
048 malloc_impl         : SG SG SG SG SG SG SG SG SG SG
049 column_view         : OK OK OK OK NG OK OK NG OK OK    # random failure
052 nested_func         : OK OK OK NG OK NG NG NG NG NG
060 arg_fmt             : OK NG OK OK OK SK SK SK SK SK    # random failure
079 replay_kernel_D     : NG NG NG NG NG NG NG NG NG NG
081 kernel_depth        : NG NG NG NG NG NG NG NG NG NG
082 arg_many            : NG NG NG NG NG SK SK SK SK SK
083 arg_float           : NG NG NG NG NG SK SK SK SK SK
084 arg_mixed           : NG NG NG NG NG SK SK SK SK SK
085 arg_reg             : NZ NZ NZ NZ NZ SK SK SK SK SK
086 arg_stack           : NG NG NG NG OK SK SK SK SK SK
087 arg_variadic        : NG NG NG NG NG SK SK SK SK SK
103 dump_kernel         : NG NG NG NG NG NG NG NG NG NG
104 graph_kernel        : NG NG NG NG NG NG NG NG NG NG
111 kernel_tid          : NG NG NG NG NG NG NG NG NG NG
119 malloc_hook         : OK SG SG SG SG OK SG SG SG SG
121 malloc_fork         : OK NG OK OK OK OK OK OK OK OK
122 time_range2         : OK OK OK OK OK OK OK OK OK NG    # random failure
124 exception           : NG OK OK OK OK NG NG NG NG NG
125 report_range        : OK OK OK OK OK NG OK NG OK OK    # random failure
131 lib_dlopen          : NZ NZ NZ NZ NZ OK OK OK OK OK
132 trigger_kernel      : NG NG NG NG NG NG NG NG NG NG
137 kernel_tid_update   : NG NG NG NG NG NG NG NG NG NG
138 kernel_dynamic      : SG SG SG SG SG NG NG NG NG NG
139 kernel_dynamic2     : NG NG NG NG NG NG NG NG NG NG
140 dynamic_xray        : BI BI BI BI BI BI BI BI BI BI
143 recv_kernel         : NG NG NG NG NG NG NG NG NG NG
148 event_kernel        : NG NG NG NG NG NG NG NG NG NG
149 event_kernel2       : NG NG NG NG NG NG NG NG NG NG
151 recv_runcmd         : NG NG NG NG NG NG NG NG NG NG
174 replay_filter_kernel: NG NG NG NG NG NG NG NG NG NG
185 exception2          : NG NG NG NG NG NG NG NG NG NG
186 exception3          : SG SG SG SG SG NG NG NG NG NG
196 chrome_taskname     : NG NG NG NG NG NG NG NG NG NG
200 lib_dlopen2         : NZ NZ NZ NZ NZ OK OK OK OK OK
216 no_libcall_report   : OK OK NG OK OK OK OK OK OK OK    # random failure
218 no_libcall_graph    : OK OK OK OK OK NG OK OK NG OK    # random failure
220 trace_script        : NZ NZ NZ NZ NZ NZ NZ NZ NZ NZ
226 default_opts        : OK OK OK OK NG OK NG OK OK OK    # random failure
240 report_diff_field2  : OK OK OK OK OK NG OK OK OK OK
251 exception4          : OK OK OK OK OK SG SG SG SG SG
262 replay_with_syms    : NG NG NG NG NG OK OK OK OK OK

The test is done in aarch64, but cross compiled to arm 32-bit binaries with the following diff.

diff --git a/tests/runtest.py b/tests/runtest.py
index eb91642d..65794cd3 100755
--- a/tests/runtest.py
+++ b/tests/runtest.py
@@ -12,8 +12,8 @@ import time

 class TestBase:
     supported_lang = {
-        'C':   { 'cc': 'gcc', 'flags': 'CFLAGS',   'ext': '.c' },
-        'C++': { 'cc': 'g++', 'flags': 'CXXFLAGS', 'ext': '.cpp' },
+        'C':   { 'cc': 'arm-linux-gnueabihf-gcc', 'flags': 'CFLAGS',   'ext': '.c' },
+        'C++': { 'cc': 'arm-linux-gnueabihf-g++', 'flags': 'CXXFLAGS', 'ext': '.cpp' },
     }

     TEST_SUCCESS = 0
@@ -53,8 +53,8 @@ class TestBase:

     def set_compiler(self, compiler):
         if compiler == 'gcc':
-            self.supported_lang['C']['cc'] = 'gcc'
-            self.supported_lang['C++']['cc'] = 'g++'
+            self.supported_lang['C']['cc'] = 'arm-linux-gnueabihf-gcc'
+            self.supported_lang['C++']['cc'] = 'arm-linux-gnueabihf-g++'
         elif compiler == 'clang':
             self.supported_lang['C']['cc'] = 'clang'
             self.supported_lang['C++']['cc'] = 'clang++'

We should install aarch64 to arm cross-compiler as follows.

$ apt install g++-arm-linux-gnueabihf

honggyukim avatar Jan 10 '22 15:01 honggyukim

It'd be easier to test both 32/64 bits even in arm machines if we have #1032.

honggyukim avatar Jan 10 '22 15:01 honggyukim

One of notable failure is

$ ./runtest.py 262
Start 1 tests with 1 worker
Test case                 pg             finstrument-fu
------------------------: O0 O1 O2 O3 Os O0 O1 O2 O3 Os
uftrace: /home/honggyu/uftrace/arch/arm/mcount-support.c:249:mcount_arch_parent_location
 ERROR: cannot find symbol for a3969f
uftrace: /home/honggyu/uftrace/arch/arm/mcount-support.c:249:mcount_arch_parent_location
 ERROR: cannot find symbol for 82568d
uftrace: /home/honggyu/uftrace/arch/arm/mcount-support.c:249:mcount_arch_parent_location
 ERROR: cannot find symbol for 76a4eb
uftrace: /home/honggyu/uftrace/arch/arm/mcount-support.c:249:mcount_arch_parent_location
 ERROR: cannot find symbol for b0d4eb
uftrace: /home/honggyu/uftrace/arch/arm/mcount-support.c:249:mcount_arch_parent_location
 ERROR: cannot find symbol for 99451b
262 replay_with_syms    : NG NG NG NG NG OK OK OK OK OK

It's because find_symtab at here gets failed in stripped t-abc binary.

honggyukim avatar Jan 10 '22 19:01 honggyukim

Second run shows this result.

Test case                 pg             finstrument-fu
------------------------: O0 O1 O2 O3 Os O0 O1 O2 O3 Os
002 argument            : OK OK OK NG OK NG OK NG OK OK
003 thread              : OK NG OK OK OK OK NG OK OK OK
012 demangle            : OK NG OK OK OK OK OK NG OK OK
013 signal              : OK OK OK OK OK OK OK OK NG OK
022 filter_kernel       : NG NG NG NG NG TM NG NG NG NG
033 filter_demangle3    : OK OK OK OK OK OK NG OK OK OK
036 replay_filter_N     : OK OK OK OK OK OK OK OK OK NG
043 full_demangle       : NG NG NG NG NG NG NG NG NG NG
052 nested_func         : OK OK OK OK NG NG NG NG NG NG
079 replay_kernel_D     : NG NG NG NG NG NG NG NG NG NG
081 kernel_depth        : NG NG NG NG NG NG NG NG NG NG
082 arg_many            : NG NG NG NG NG SK SK SK SK SK
083 arg_float           : NG NG NG NG NG SK SK SK SK SK
084 arg_mixed           : NG NG NG NG NG SK SK SK SK SK
085 arg_reg             : NZ NZ NZ NZ NZ SK SK SK SK SK
086 arg_stack           : NG NG NG NG OK SK SK SK SK SK
087 arg_variadic        : NG NG NG NG NG SK SK SK SK SK
103 dump_kernel         : NG NG NG NG NG NG NG NG NG NG
104 graph_kernel        : NG NG NG NG NG NG NG NG NG NG
111 kernel_tid          : NG NG NG NG NG NG NG NG NG NG
117 time_range          : OK OK NG OK OK OK OK OK OK OK
124 exception           : OK OK OK OK OK NG NG NG NG NG
131 lib_dlopen          : NZ NZ NZ NZ NZ OK OK OK OK OK
132 trigger_kernel      : NG NG NG NG NG NG NG NG NG NG
137 kernel_tid_update   : NG NG NG NG NG NG NG NG NG NG
138 kernel_dynamic      : SG SG SG SG SG NG NG NG NG NG
139 kernel_dynamic2     : NG NG NG NG NG NG NG NG NG NG
140 dynamic_xray        : BI BI BI BI BI BI BI BI BI BI
143 recv_kernel         : NG NG NG NG NG NG NG NG NG NG
148 event_kernel        : NG NG NG NG NG NG NG NG NG NG
149 event_kernel2       : NG NG NG NG NG NG NG NG NG NG
151 recv_runcmd         : NG NG NG NG NG NG NG NG NG NG
158 report_diff_policy1 : OK OK OK OK OK NG OK OK OK OK
172 trigger_filter      : OK OK OK OK OK OK OK OK OK NG
174 replay_filter_kernel: NG NG NG NG NG NG NG NG NG NG
185 exception2          : SG SG SG SG SG NG NG NG NG NG
186 exception3          : SG SG SG SG SG NG NG NG NG NG
196 chrome_taskname     : OK NG NG NG NG NG NG NG NG NG
200 lib_dlopen2         : NZ NZ NZ NZ NZ OK OK OK OK NG
208 watch_cpu           : NG OK OK OK OK OK OK OK OK OK
214 signal_trigger      : OK OK OK OK OK OK NZ OK OK OK
215 no_libcall_replay   : OK NG NG OK OK OK OK NG OK OK
220 trace_script        : NZ NZ NZ NZ NZ NZ NZ NZ NZ NZ
226 default_opts        : OK OK OK OK OK NG OK OK OK OK
238 report_field2       : OK OK OK OK OK OK OK OK NG OK
244 report_task_field   : OK OK OK OK OK NG OK OK OK NG
251 exception4          : OK OK OK OK OK SG SG SG SG SG
262 replay_with_syms    : NG NG NG NG NG OK OK OK OK OK

honggyukim avatar Jan 10 '22 20:01 honggyukim