[Bug 91857] Mesa linker is slow
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Aug 29 12:57:12 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=91857
Eero Tamminen <eero.t.tamminen at intel.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |eero.t.tamminen at intel.com
Summary|Mesa 10.6.3 linker is slow |Mesa linker is slow
--- Comment #30 from Eero Tamminen <eero.t.tamminen at intel.com> ---
"perf" profiling info for today's Mesa version:
-------------------------------------------------------------------
$ sudo apt-get install linux-tools-common
$ perf record -- frag_runner frag_shader=obsfucated_shader.frag ...
$ perf report -n --sort comm,dso
Overhead Samples Command Shared Object
95,18% 218725 frag_runner i965_dri.so
4,59% 10964 frag_runner libc-2.23.so
...
$ perf report
# Object Symbol
30.99% i965_dri.so fs_visitor::virtual_grf_interferes
28.39% i965_dri.so ra_allocate
15.80% i965_dri.so fs_visitor::assign_regs
4.47% i965_dri.so ra_add_node_adjacency
1.64% i965_dri.so (anonymous namespace)::ir_copy_propagation_visitor::visit
1.54% i965_dri.so decrement_q.isra.2
1.37% i965_dri.so (anonymous namespace)::ir_copy_propagation_visitor::kill
1.24% i965_dri.so ra_add_node_interference
1.22% i965_dri.so brw::fs_live_variables::compute_start_end
1.11% libc-2.23.so _int_malloc
0.94% i965_dri.so (anonymous
namespace)::ir_copy_propagation_elements_visitor::kill
0.75% libc-2.23.so _int_free
0.69% libc-2.23.so __libc_calloc
0.63% i965_dri.so (anonymous
namespace)::ir_copy_propagation_elements_visitor::handle_rvalue
0.60% libc-2.23.so realloc
0.45% i965_dri.so brw::fs_live_variables::setup_def_use
0.42% libc-2.23.so _int_realloc
0.40% i965_dri.so fs_visitor::choose_spill_reg
0.36% i965_dri.so ra_get_best_spill_node
0.35% i965_dri.so unsafe_free
0.34% i965_dri.so ir_expression::accept
0.32% libc-2.23.so __memset_sse2
0.27% libc-2.23.so malloc_consolidate
0.26% i965_dri.so match_value
0.25% libc-2.23.so __memcpy_sse2
0.25% i965_dri.so fs_visitor::calculate_payload_ranges
0.25% i965_dri.so get_used_mrfs
0.24% i965_dri.so backend_reg::in_range
0.24% i965_dri.so brw::fs_live_variables::compute_live_variables
0.22% i965_dri.so visit_list_elements
0.20% i965_dri.so fs_visitor::spill_reg
0.13% libc-2.23.so __memset_avx2
0.12% i965_dri.so reralloc_array_size
-------------------------------------------------------------------
When using perf report interactively, one can see that:
* virtual_grf_interferes() cost goes to the couple if checks in that function,
so it just gets called too much. Calling is done by assign_regs():
-----------------
for (unsigned i = 0; i < this->alloc.count; i++) {
...
for (unsigned j = 0; j < i; j++) {
if (virtual_grf_interferes(i, j)) {
ra_add_node_interference(g, i, j);
}
}
-----------------
* All the assign_regs() cost goes to running above internal loop.
* ra_allocate() cost goes mainly to inlined graph node loop from ra_simplify(),
and slightly to inlined check from pq_test().
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20160829/97d08834/attachment.html>
More information about the intel-3d-bugs
mailing list