kernprof
[Top] [All Lists]

x86 profiling

To: kernprof@xxxxxxxxxxx
Subject: x86 profiling
From: Marko Kiiskila <mkiiskila@xxxxxxxxx>
Date: Thu, 11 Jul 2002 14:14:24 -0700 (PDT)
Sender: owner-kernprof@xxxxxxxxxxx
Hi,

I patched a 2.4.9 kernel with the profiling package,
and the kernel crashes right away when I try to
enable some other mode than PC sampling.

Seems like the combination of regparm, -pg flag and
-O2 flag are causing trouble.
I tried Redhat's gcc 2.96, as well as their gcc 3.0.4,
and I'm seeing this behavior with both of the
compilers.

If I compile kernel with '-O2', call to
mcount is done as the very first thing with functions
which are declared with 'asmlinkage'.

c0142c20 <sys_ioctl>:
c0142c20:       e8 2b c7 0c 00  call   c020f350
<mcount>
c0142c25:       55              push   %ebp
c0142c26:       89 e5           mov    %esp,%ebp
c0142c28:       57              push   %edi
c0142c29:       56              push   %esi
c0142c2a:       53              push   %ebx
c0142c2b:       56              push   %esi

But if I drop the optimization level to -O, call to
mcount is done after contents of esp have been
moved to ebp.

c0140fd0 <sys_ioctl>:
c0140fd0:       55              push   %ebp
c0140fd1:       89 e5           mov    %esp,%ebp
c0140fd3:       57              push   %edi
c0140fd4:       56              push   %esi
c0140fd5:       53              push   %ebx
c0140fd6:       83 ec 04        sub    $0x4,%esp
c0140fd9:       e8 42 43 0c 00  call   c0205320
<mcount>
c0140fde:       8b 7d 0c        mov    0xc(%ebp),%edi
c0140fe1:       8b 5d 10        mov    0x10(%ebp),%ebx

I assume this is a gcc bug, but I'm a bit suprised
that I haven't seen anybody else report this.

Comments?
--
M

__________________________________________________
Do You Yahoo!?
Sign up for SBC Yahoo! Dial - First Month Free
http://sbc.yahoo.com

<Prev in Thread] Current Thread [Next in Thread>