lkml.org 
[lkml]   [2008]   [Apr]   [26]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateFri, 25 Apr 2008 23:50:05 -0700
    FromJeremy Fitzhardinge <>
    SubjectRe: [PATCH 1/1] x86: fix text_poke
    Mathieu Desnoyers wrote:
    > * Linus Torvalds (torvalds@linux-foundation.org) wrote:
    > 
    >> On Fri, 25 Apr 2008, H. Peter Anvin wrote:
    >> 
    >>> Yes, that should work.  It's still ugly, and I have to say I find the
    >>> complexity rather distasteful.  I am willing to be convinced it's worth it,
    >>> but I would really like to see hard numbers.
    >>> 
    >> I really cannot imagine that this kind of pain is *ever* worth it. 
    >>
    >> Please give an example of something so important that we'd want to do 
    >> complex code rewriting on the fly. What _is_ the point of imv_cond()?
    >>
    >> 		Linus
    >> 
    >
    > The point is to provide a way to dynamically enable code at runtime
    > without noticeable performance impact on the system. It's principally
    > useful to control the markers in the kernel, which can be placed in very
    > frequently executed code paths. The original markers add a memory read,
    > test and conditional branch at each marker site. By using the immediate
    > values patchset, it goes down to a load immediate value, test and branch.
    >
    > However, Ingo was still unhappy with the conditional branch, so I cooked
    > this jump patching optimization on top of the immediate values. 
    
    I think all this demonstrates that the conditional branch is a bearable 
    cost compared to the alternative.  A conditional branch which almost 
    always branches the same way is very predictable, and really shouldn't 
    cost very much.
    
        J
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    
    
    \
     
     \ /
      Last update: 2008-04-26 08:53    [from the cache]
    ©2003-2008