From: Konstantin S. <kon...@gm...> - 2008-03-19 20:40:01
|
Hi Pavel, I had the same issue and in my case adding -fno-omit-frame-pointer to compilation flags (while building your app) helped. --kcc On Wed, Mar 19, 2008 at 6:53 PM, Pavel Krauz <kr...@cn...> wrote: > Hi all, > I have tried to compare the call graph profiling of the same 32bit binary on x86_64 and i686 system. > I need to call profile on 64bit platform but it seems to me that it does not work properly. > See the following results, first is for x86_64, second is for i686. In the i686 case I get nice callgraph profile, > but in x86_64 I do not. It is the same binary! Is it known kernel/x86_64/oprofile issue - can I get a fix? > b.r. > Pavel > > > This is on Centos 5.1 2.6.18-53.1.13.el5 x86_64 and 2.6.18-8.el5 i686 kernels. > > --------------------------------------------------------------------- > ------------------ x86_64 output of my binary ----------------------- > -------------------------------------------------------------------- > CPU: AMD64 processors, speed 2400 MHz (estimated) > Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 200000 > samples % image name symbol name > ------------------------------------------------------------------------------- > 90134 28.5118 tx XyxsDriver::XyxsFeed::PutPacket(int, unsigned int, unsigned char*, unsigned int) > 90134 100.000 tx XyxsDriver::XyxsFeed::PutPacket(int, unsigned int, unsigned char*, unsigned int) [ > self] > ------------------------------------------------------------------------------- > 57204 18.0951 no-vmlinux (no symbols) > 57204 100.000 no-vmlinux (no symbols) [self] > ------------------------------------------------------------------------------- > 35315 11.1711 libc-2.5.so memcpy > 35315 100.000 libc-2.5.so memcpy [self] > ------------------------------------------------------------------------------- > 20319 6.4274 tx Process(XyxsDriver::XyxsCard*, std::vector<int, std::allocator<int> >, int, cDATA_SO > URCE*, bool, int, int) > 20319 100.000 tx Process(XyxsDriver::XyxsCard*, std::vector<int, std::allocator<int> >, int, cDATA_ > SOURCE*, bool, int, int) [self] > ------------------------------------------------------------------------------- > 16903 5.3469 tx cDATA_SOURCE_NCAP::Next(pcap_pkthdr*, TSx*) > 16903 100.000 tx cDATA_SOURCE_NCAP::Next(pcap_pkthdr*, TSx*) [self] > > ... > > ----------------------------------------------------------- > -------------------- i686 output of the same binary > -------------------------------------------------------- > > CPU: AMD64 processors, speed 2400 MHz (estimated) > Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 200000 > samples % image name symbol name > ------------------------------------------------------------------------------- > 57620 26.0331 no-vmlinux (no symbols) > 57620 100.000 no-vmlinux (no symbols) [self] > ------------------------------------------------------------------------------- > 563 1.0074 tx main > 55326 98.9926 tx Process(XyxsDriver::XyxsCard*, std::vector<int, std::allocator<int> >, int, cDATA_ > SOURCE*, bool, int, int) > 54914 24.8105 tx XyxsDriver::XyxsFeed::PutPacket(int, unsigned int, unsigned char*, unsigned int) > 54914 98.2555 tx XyxsDriver::XyxsFeed::PutPacket(int, unsigned int, unsigned char*, unsigned int) [ > self] > 975 1.7445 tx XyxsDriver::XyxsFeed::PutPacketEnoughSpace(unsigned int) > ------------------------------------------------------------------------------- > 6 0.0271 libxycommoninterface.so LINUXCommandAdapter::PerformSubCommand(unsigned int, void*, unsigned int, void*, u > nsigned int, void*, unsigned int, unsigned int*) > 8 0.0361 libxycommoninterface.so CAbstractFirestormCard::GetNextFeedBuffer(unsigned int, unsigned int, void*, unsig > ned int, void*, unsigned int*) > 12 0.0542 libxycommoninterface.so CAbstractFirestormCard::ReleaseFeedBuffer(unsigned int, unsigned int, void*) > 22124 99.8826 libc-2.5.so _IO_sgetn > 21986 9.9334 libc-2.5.so memcpy > 21986 100.000 libc-2.5.so memcpy [self] > ------------------------------------------------------------------------------- > 159657 100.000 tx main > 13227 5.9760 tx Process(XyxsDriver::XyxsCard*, std::vector<int, std::allocator<int> >, int, cDATA_SO > URCE*, bool, int, int) > 74136 46.4328 tx cDATA_SOURCE_NCAP::Next(pcap_pkthdr*, TSx*) > 55326 34.6517 tx XyxsDriver::XyxsFeed::PutPacket(int, unsigned int, unsigned char*, unsigned int) > 13227 8.2843 tx Process(XyxsDriver::XyxsCard*, std::vector<int, std::allocator<int> >, int, cDATA_ > SOURCE*, bool, int, int) [self] > 2693 1.6867 tx bool __gnu_cxx::operator==<int*, std::vector<int, std::allocator<int> > >(__gnu_cx > x::__normal_iterator<int*, std::vector<int, std::allocator<int> > > const&, __gnu_cxx::__normal_iterator<int*, std::vector<int, > std::allocator<int> > > const&) > 2615 1.6378 tx __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >::__nor > mal_iterator(int* const&) > 1526 0.9558 tx __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >::opera > tor++(int) > 1331 0.8336 tx XyxsDriver::XyxsFeed::ReleaseBuffer() > 1306 0.8180 libc-2.5.so fread > 1148 0.7190 tx __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >::base( > ) const > 1058 0.6626 tx std::vector<int, std::allocator<int> >::begin() > 970 0.6075 tx XyxsDriver::XyxsFeed::PutPacketEnoughSpace(unsigned int) > ... > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > oprofile-list mailing list > opr...@li... > https://lists.sourceforge.net/lists/listinfo/oprofile-list > |