From: Kiran p. <kd...@gm...> - 2012-09-26 01:20:12
|
I'm trying to get oprofile to dump the methods that are taking the most time for a java app. I'm using hotspot 6u34 on a ubuntu. I have the latest version of oprofile root@kpaul-wsl1:/home/kpaul/oprofile/oprofile/opjitconv# opcontrol --version opcontrol: oprofile 0.9.9git compiled on Sep 17 2012 17:11:58 Here is the setup: root@kpaul-wsl1:/home/kpaul/oprofile/oprofile/opjitconv# opcontrol --status Daemon not running Session-dir: /var/lib/oprofile Event 0: CPU_CLK_UNHALTED:1000000:0:1:1 Separate options: library kernel thread vmlinux file: none Image filter: none Call-graph depth: 0 I'm using operf to attach to my java process, I run some load on it and then I kill operf. A considerable numbers of samples are lost but I'm hoping that not the cause of me not seeing any java methods. I'm hooking it up to java using JAVA_TOOL_OPTIONS and I'm also passing this option -XX:+UseOprofile (apparently this is something that was written in 05 according to the comments and is supposed to help oprofile map nmethods to memory spaces and times, i dont see any mention of it anywhere but the code did look promising if Oprofile uses it) When I run opreport -lr I get something like this (this particular report is an older one, when I enable +UseOprofile, I also get some random vm_* things in the report) 14190 1.3096 libjvm.so instanceKlass::oop_adjust_pointers(oopDesc*) 14584 1.3459 libjvm.so GenericTaskQueue<StarTask, 131072u>::pop_local(StarTask&) 14847 1.3702 libjvm.so instanceKlass::oop_follow_contents(oopDesc*) 15702 1.4491 libzip.so ZIP_GetEntry 15905 1.4679 libc-2.11.1.so /lib/libc-2.11.1.so 17686 1.6322 libjvm.so instanceKlass::oop_push_contents(PSPromotionManager*, oopDesc*) 25000 2.3072 anon (tgid:18481 range:0x7f71435a7000-0x7f7146116fff) anon (tgid:18481 range:0x7f71435a7000-0x7f7146116fff) 34641 3.1970 libjvm.so void PSPromotionManager::claim_or_forward_internal_depth<unsigned int>(unsigned int*) 34756 3.2076 libjvm.so SpinPause 52203 4.8178 libjvm.so PSPromotionManager::copy_to_survivor_space(oopDesc*) 75642 6.9809 libjvm.so StringTable::lookup(int, unsigned short*, int, unsigned int) 130961 12.0863 no-vmlinux /no-vmlinux 296237 27.3395 anon (tgid:18481 range:0x7f71435a7000-0x7f7146136fff) anon (tgid:18481 range:0x7f71435a7000-0x7f7146136fff) What I would want is getting the actual java methods that anon refers to, Looking at the example on the oprofile website, it seems like that should happen but unfortunately, its not happening for me. I checked the jitdump folder and I have a lot of files there. If i do "strings xxxxxx.dump" then I do get a lot of java methods. I'm just not sure why I dont get any *.java things from opreport. |