lkml.org 
[lkml]   [2010]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] tracing: Cleanup the convoluted softirq tracepoints
    From
    Date
    On Tue, 2010-10-19 at 15:49 -0700, H. Peter Anvin wrote:
    > On 10/19/2010 03:41 PM, Mathieu Desnoyers wrote:
    > >>
    > >> OK, first of all, there are some serious WTFs here:
    > >>
    > >> # define JUMP_LABEL_INITIAL_NOP ".byte 0xe9 \n\t .long 0\n\t"
    > >>
    > >> A jump instruction is one of the worst possible NOPs. Why are we doing
    > >> this?
    > >
    > > This code is dynamically patched at boot time (and module load time) with a
    > > better nop, just like the function tracer does.
    > >
    >
    > That's just ridiculous... start out with something sane and you at least
    > have the chance of not having to patch it.

    Yep we can fix this. Jason?



    > > So if we were executing tracepoints in a maze of jumps, we could argue that
    > > instruction throughput is the most important there. However, if we expect the
    > > common case to be surrounded by some non-ALU instructions, latency tends to
    > > become the most important criterion.
    > >
    > > But I feel I might be missing something important that distinguish "jcc" from
    > > "jmp".
    >
    > NOP has a latency of 0.5-1.0 cycle/insns, *but has no consumers*.
    >
    > JMP/Jcc does have a consumer -- the IP -- and actually measuring shows
    > that it is much, much worse than NOP and other dummy instructions.

    But how does JMP vs Jcc compare?

    -- Steve




    \
     
     \ /
      Last update: 2010-10-20 01:07    [W:0.029 / U:0.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site