[prev in list] [next in list] [prev in thread] [next in thread] 

List:       oprofile-list
Subject:    Help needed from OProfile community
From:       Maynard Johnson <maynardj () us ! ibm ! com>
Date:       2012-01-26 21:07:30
Message-ID: 4F21C092.1020708 () us ! ibm ! com
[Download RAW message or body]

In the past several weeks, I've found and fixed several oprofile bugs and posted 
patches to the mailing list (see below).  The rule in this community is that 
*all* non-trivial patches must be reviewed by at least one other community 
member, so I am asking for help from anyone who can test and/or review the 
patches.  Looking back on my postings, I realize I did a poor job of describing 
what the patches were fixing, so I've attempted to make that clear below.  I 
trust that others have seen at least some of these symptoms before and may be 
willing to do some testing (and code review, if you can).

Any and all feedback is welcome.  Thank you!

1. [PATCH] Fix debuginfo processing for non-ppc64 architectures
	Posted Jan 6	
	Symptom:  If shared libraries have been stripped of symbol information, users 
must make
	debuginfo files available that contain the symbol information for those 
libraries so that
	opreport can attribute samples to symbols for those libraries.  But in a 
prelinked environment
	(e.g., RHEL, Fedora), opreport does not correctly process the debuginfo files, 
thus generating
	report data such as the following:
	samples  %        image name               symbol name
	1531      6.2205  libcairo.so.2.11000.2    /usr/lib64/libcairo.so.2.11000.2

	In the example given above, the debuginfo package corresponding to the cairo 
package
	has been installed.  Note that this problem only occurs where the shared library is
	completely stripped of symbol information.  And on RHEL and Fedora, basic 
symbol information
	is retained in the runtime library, so this symptom does not appear with 
samples taken in libc.

2. [PATCH] Fix debuginfo processing for ppc64 architecture
	Posted Jan 6
	Symptom: With patch #1 applied, address-to-symbol resolution worked properly in 
prelinked
	environments on ppc64 and Intel architectures.  However, on ppc64, 
"--debug-info" reports
	did not show correct source file/line number info.  Bad data looked like the 
following:

	samples  %        linenr info                 image name               symbol name
	1491      6.0580  cairo-tee-surface.c:0       libcairo.so.2.11000.2 
00000145.plt_call.strchr@@GLIBC_2.3+0

	And good output, with the patch applied, looks like this:

	samples  %        linenr info                 image name               symbol name
	327       1.3286  cairo-bentley-ottmann.c:1723 libcairo.so.2.11000.2 
._cairo_bentley_ottmann_tessellate_polygon
	51        0.2072  cairo-surface.c:632         libcairo.so.2.11000.2 
.cairo_surface_destroy

3. [PATCH] Fix debuginfo processing to handle no symbol info in debuginfo file
	Posted Jan 12
	Symptom: Certain system libs (notably, libc) on certain distros (RHEL, Fedora) 
retain basic
	symbol information, but their corresponding debuginfo files have only debug 
data -- i.e., no
	basic symbol info.  opreport does not handle that situation properly, resulting 
in "--debug-info"
	reports that look like the following:

	samples  %        linenr info                 image name               symbol name
	67982    14.7813  (no location information)   libc-2.12.so             .__random
	18665     4.0583  (no location information)   libc-2.12.so             ._itoa_word

	And good output, with patch #3 applied, looks like this:

	samples  %        linenr info                 image name               symbol name
	67982    14.7813  random.c:293                libc-2.12.so             .__random
	18665     4.0583  _itoa.c:176                 libc-2.12.so             ._itoa_word

4. [PATCH] Discard user context kernel samples for which we have no app_cookie
	Posted Jan 19
	Symptom: Under certain conditions, samples are not attributed to the appropriate
	app name.  If profiling is done with --separate=lib,thread[,other-options] and then
	a report is generated using a tgid or tid specification to see profile data for one
	particular process or thread, you may see anomalies like that shown below.  Note
	the line with "ext3" under the 'app name' column, when all other lines (rightly)
	have "spin".

	samples  %        image name               app name                 symbol name
	1018088  99.8455  spin                     spin                     .spin
	1566      0.1536  ext3                     spin                     /ext3
	4        3.9e-04  ext3                     ext3                     /ext3
	1        9.8e-05  ld-2.12.1.so             spin 
._dl_map_object_from_fd
	1        9.8e-05  ld-2.12.1.so             spin 
._dl_relocate_object
	1        9.8e-05  ld-2.12.1.so             spin 
.check_match.8837
	1        9.8e-05  libc-2.12.1.so           spin                     ._IO_cleanup


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
oprofile-list mailing list
oprofile-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic