PROBLEM:
On all of my Linux x86_64 systems, when I build code instrumented for profiling with gcc -pg, the running times reported for the code by gprof are many times the actual runtime of the program. This problem is specific to x86_64; the times for the same code are correct on 32-bit x86 Linux. The problem on x86_64 occurs independently of whether I compile with -m32 or -m64, and independently of the optimization level of the compilation.
A simple example is the following program "braindead.c":

unsigned int x;

void do_something()
{
  unsigned int j;
  for (j = 0; j < (1U << 31); j++)
    {
      x = (j * j + j)/ 10000;
    }
}

int main()
{
  do_something();
  return 0;
}

Here's what I see:

> gcc -O2 -pg braindead.c
> time a.out
5.030u 0.001s 0:05.03 100.0%    0+0k 0+0io 0pf+0w
> gprof a.out
Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
101.33     50.97    50.97        1    50.97    50.97  do_something
[...]
ndex % time    self  children    called     name
               50.97    0.00       1/1           main [2]
[1]    100.0   50.97    0.00       1         do_something [1]
-----------------------------------------------
                                                 <spontaneous>
[2]    100.0    0.00   50.97                 main [2]
               50.97    0.00       1/1           do_something [1]
-----------------------------------------------

PLATFORM:
Linux 2.6.x x86_64 (x86_64-uknown-linux-gnu)
(observed with RedHat 2.6.9 and 2.6.10 kernels)
(observed on both AMD Opteron and Intel Pentium D)

TOOLCHAIN:
gcc 4.1.1 (same observed with gcc 3.4.5)
binutils nightly 0621 (same observed with older releases)
glibc 2.3.4

                                                         Jeremy

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to