lkml.org 
[lkml]   [2009]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: problem with function_graph self-test?

    On Thu, 18 Jun 2009, Jeremy Fitzhardinge wrote:
    > >
    > > This is something that gcc is screwing with us. After spending all day
    > > today trying to figure out what is happening, I finally found it in the
    > > assembly.
    > >
    > > In the timer_stats_update_stats function, I get this at the beginning:
    > >
    > > 00000327 <timer_stats_update_stats>:
    > > 327: 57 push %edi
    > > 328: 8d 7c 24 08 lea 0x8(%esp),%edi
    > > 32c: 83 e4 e0 and $0xffffffe0,%esp
    > > 32f: ff 77 fc pushl 0xfffffffc(%edi)
    > > 332: 55 push %ebp
    > > 333: 89 e5 mov %esp,%ebp
    > > 335: 57 push %edi
    > > 336: 56 push %esi
    > > 337: 53 push %ebx
    > > 338: 81 ec 8c 00 00 00 sub $0x8c,%esp
    > > 33e: e8 fc ff ff ff call 33f <timer_stats_update_stats+0x18>
    > > 33f: R_386_PC32 mcount
    > >
    > >
    > > And this at the end of the function:
    > >
    > > 4f6: 8d 67 f8 lea 0xfffffff8(%edi),%esp
    > > 4f9: 5f pop %edi
    > > 4fa: c3 ret
    > >
    >
    > Something to do with using _RET_IP_ in spin_unlock_irqrestore() perhaps?

    No, it was the fact that there was a local variable of type struct entry,
    where entry was defined to be ____cacheline_aligned_in_smp. But that was
    not the end of it. It happens throughout the code. The next hit was in
    tcp_ack(). But it has something to do with -Os on i386.

    -- Steve



    \
     
     \ /
      Last update: 2009-06-19 02:35    [W:0.030 / U:61.088 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site