[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-31 Thread jeremip11 at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

Jeremi  changed:

   What|Removed |Added

 CC||jeremip11 at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-08 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

H.J. Lu  changed:

   What|Removed |Added

 CC||manjian2006 at gmail dot com

--- Comment #10 from H.J. Lu  ---
*** Bug 22942 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-05 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

H.J. Lu  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from H.J. Lu  ---
Fixed for 2.31.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-05 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

--- Comment #8 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by H.J. Lu :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0e70b27ba900581df8e23cbbd4612176f869d796

commit 0e70b27ba900581df8e23cbbd4612176f869d796
Author: H.J. Lu 
Date:   Mon Mar 5 03:44:46 2018 -0800

Use binary search on dynamic relocations

Replace linear search with binary search on dynamic relocations.  After
finding a match, scan backward to the first matching relocation, then
scan forward for a matching relocation with non-absolute symbol.

On Fedora 27 x86-64, time for "objdump -d" on libxul.so from RHEL 7.4
x86-64 went from

134.46user 0.12system 2:15.03elapsed

to

8.49user 0.14system 0:08.64elapsed

PR binutils/22911
* objdump.c (is_significant_symbol_name): Return TRUE for all
.plt* sections.
(find_symbol_for_address): Replace linear search with binary
search on dynamic relocations.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-05 Thread mark at klomp dot org
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

--- Comment #7 from Mark Wielaard  ---
(In reply to H.J. Lu from comment #6)
> A patch is posted at
> 
> https://sourceware.org/ml/binutils/2018-03/msg00015.html

Thanks. With that patch my original testcase takes just 11 seconds (from 2
minutes 40 seconds) and the output is identical.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-04 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

--- Comment #6 from H.J. Lu  ---
A patch is posted at

https://sourceware.org/ml/binutils/2018-03/msg00015.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-04 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

Alan Modra  changed:

   What|Removed |Added

 CC||amodra at gmail dot com

--- Comment #5 from Alan Modra  ---
The binary search idea is good, but you probably should handle the case where
multiple relocs apply to the same address.  binary search to get a vma match,
scan back to first reloc at that vma, then while the vma matches scan forward
for a reloc with suitable symbol.
Also, strncmp (name, ".plt", 4) would be nicer than match 3 .plt variants.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-03 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

H.J. Lu  changed:

   What|Removed |Added

   Target Milestone|--- |2.31

--- Comment #4 from H.J. Lu  ---
Please try users/hjl/pr22911 branch at

https://github.com/hjl-tools/binutils-gdb/tree/users/hjl/pr22911

I got

8.45user 0.16system 0:08.62elapsed

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-03 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

--- Comment #3 from H.J. Lu  ---
(In reply to Mark Wielaard from comment #2)

> It might depend on the testfile used. The libxul.so that I used for testing
> is the one packaged with RHEL 7.4. But others have replicated with the

Confirmed with libxul.so from RHEL 7.4:

master branch:

134.46user 0.12system 2:15.03elapsed

objdump.c reverted:

8.45user 0.04system 0:08.50elapsed

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-03 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

H.J. Lu  changed:

   What|Removed |Added

Version|unspecified |2.31 (HEAD)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-03 Thread mark at klomp dot org
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

Mark Wielaard  changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #2 from Mark Wielaard  ---
(In reply to H.J. Lu from comment #1)
> Which version binutils are you using?

This is with gdb-binutils git master build on RHEL 7.4 with gcc from
devtoolset-7, but also happens when updating the binutils version on Fedora
from f25 (which doesn't have that commit yet) to f27.

> I can't reproduce it on master branch:

It might depend on the testfile used. The libxul.so that I used for testing is
the one packaged with RHEL 7.4. But others have replicated with the libxul.so
as build upstream. The problem seems to be the newly introduced linear search
of the dynamic relocs. So it might depend on whether your testfile has lots of
those.

Julian on CC also has some profiling benchmarks that shows the slowdown comes
from the changes in find_symbol_for_address.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/22911] Huge slowdown in objdump -d caused by scanning the dynamic relocs

2018-03-03 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=22911

H.J. Lu  changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #1 from H.J. Lu  ---
Which version binutils are you using?  I can't reproduce it on master branch:

23.62s user 0.53s system 99% cpu 24.225 total

Reverting:

https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=binutils/objdump.c;h=59abc1189be5643a44405cc71cabb1397ae9f5d8;hp=2d2bddb03ce5fc9093befb61522e05371d783d66;hb=a24bb4f0cce83eea8b2ad1542316651143af6f90;hpb=199fa1b7089d7f7438b087fa30504ea5a590f561

21.86s user 0.43s system 99% cpu 22.329 total

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils