![]() | ||||||||||
Messages in this thread |
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 | ||||||||||