https://sourceware.org/bugzilla/show_bug.cgi?id=30089
Bug ID: 30089 Summary: [display text] Incorrect thread count shown on aarch64 Product: binutils Version: 2.40 Status: NEW Severity: normal Priority: P2 Component: gprofng Assignee: vladimir.mezentsev at oracle dot com Reporter: ruud.vanderpas at oracle dot com Target Milestone: --- As the sample output below shows, the number of threads shown with "gprofng display text" is incorrect on aarch64. This tested was conducted on an Oracle Linux 9 ("OL9") aarch64 system with multiple cores. The sample output below shows that the performance improves when increasing the number of threads from 1 to 2. Then the gprofng experiment is conducted using 2 threads. The printed elapsed time of about 0.6 seconds confirms that both threads are used in the computation. But the output of "gprofng display text" shows the information for one thread only. ==================== LOG of the session ===================== $ cat run.res + exe=../bindir/mxv-pthreads + ../bindir/mxv-pthreads -t 1 -v Verbose mode enabled Allocated data structures Timings for the initialization phase elapsed time init_data = 0.066946 cpu time init_data = 0.066852 system time init_data = 0.008289 Initialized matrix and vectors Defined workload distribution Assigned work to threads Thread 0 has been created Timings for the computational phase elapsed time mxv = 1.253865 cpu time mxv = 1.251356 system time mxv = 0.000000 Matrix vector multiplication has completed Verify correctness of result Error check passed mxv: error check passed - rows = 2000 columns = 3000 threads = 1 + ../bindir/mxv-pthreads -t 2 -v Verbose mode enabled Allocated data structures Timings for the initialization phase elapsed time init_data = 0.067124 cpu time init_data = 0.067025 system time init_data = 0.004770 Initialized matrix and vectors Defined workload distribution Assigned work to threads Thread 0 has been created Thread 1 has been created Timings for the computational phase elapsed time mxv = 0.613867 cpu time mxv = 1.222008 system time mxv = 0.003657 Matrix vector multiplication has completed Verify correctness of result Error check passed mxv: error check passed - rows = 2000 columns = 3000 threads = 2 + gprofng --version GNU gprofng binutils version 2.40.50 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. + gprofng collect app -O mxv.2.thr.er ../bindir/mxv-pthreads -t 2 -v CPU clock frequency: 25000000 Creating experiment directory mxv.2.thr.er (Process ID: 1147696) ... Verbose mode enabled Allocated data structures Timings for the initialization phase elapsed time init_data = 0.067561 cpu time init_data = 0.067397 system time init_data = 0.014307 Initialized matrix and vectors Defined workload distribution Assigned work to threads Thread 0 has been created Thread 1 has been created Timings for the computational phase elapsed time mxv = 0.618479 cpu time mxv = 1.230675 system time mxv = 0.000000 Matrix vector multiplication has completed Verify correctness of result Error check passed mxv: error check passed - rows = 2000 columns = 3000 threads = 2 + gprofng display text -threads ./mxv.2.thr.er Objects sorted by metric: Exclusive Total CPU Time Excl. Total Name CPU sec. % 0.060 100.00 <Total> 0.060 100.00 Process 1, Thread 1 $ -- You are receiving this mail because: You are on the CC list for the bug.