LWN: Comments on "Jump label" https://lwn.net/Articles/412072/ This is a special feed containing comments posted to the individual LWN article titled "Jump label". en-us Thu, 16 Oct 2025 22:12:43 +0000 Thu, 16 Oct 2025 22:12:43 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Jump label https://lwn.net/Articles/421346/ https://lwn.net/Articles/421346/ SEJeff <div class="FormattedComment"> 32bit and 64bit x86 were merged together sometime ago. You must have missed the HUGE flamewar that resulted in ingo winning and the two being merged.<br> </div> Fri, 31 Dec 2010 17:25:51 +0000 Jump label https://lwn.net/Articles/412901/ https://lwn.net/Articles/412901/ i3839 <div class="FormattedComment"> That's very smart, but a bit tricky to implement (at least on x86 and other archs with variable instruction lengths). I'd say go for it!<br> </div> Tue, 02 Nov 2010 20:28:55 +0000 Jump label https://lwn.net/Articles/412692/ https://lwn.net/Articles/412692/ ThomasBellman <div class="FormattedComment"> Instead of inserting a NOP instruction, you could fill that slot with a useful instruction. Then, of course, that useful instruction must also be part of the tracepoint code, in order to have it performed when the tracepoint is enabled as well, when the original instruction is replaced with a jump.<br> </div> Mon, 01 Nov 2010 20:58:40 +0000 Trade-off https://lwn.net/Articles/412551/ https://lwn.net/Articles/412551/ giraffedata <blockquote> <blockquote> Is there anyway to measure the actual overhead caused by the test in the current kernel ? </blockquote> With the new approach, there is very little overhead </blockquote> <p> I believe "current kernel" refers to kernel code before the new approach. <p> I.e. What do we get in return for this complication? Sat, 30 Oct 2010 22:05:17 +0000 Jump label https://lwn.net/Articles/412522/ https://lwn.net/Articles/412522/ compudj <div class="FormattedComment"> The overhead can be expected to be even lower than the static DTrace instrumentation, because jump labels, in combination with Tracepoints, branch over the whole stack setup and function call. DTrace only nops out the actual function call with a special linker phase, leaving in place the whole stack setup.<br> </div> Sat, 30 Oct 2010 03:50:55 +0000 Jump label https://lwn.net/Articles/412503/ https://lwn.net/Articles/412503/ daney <div class="FormattedComment"> Indeed, although it now looks like the GCC issue has been sorted out, so those that like living on the bleeding edge can have their jump label on i386 too.<br> </div> Fri, 29 Oct 2010 21:18:00 +0000 Jump label https://lwn.net/Articles/412436/ https://lwn.net/Articles/412436/ nix <div class="FormattedComment"> Of course jit is coming soon. We already *have* git, so this should just be a matter of a few ++s away (on a big-endian architecture).<br> <p> </div> Fri, 29 Oct 2010 15:31:18 +0000 Jump label https://lwn.net/Articles/412393/ https://lwn.net/Articles/412393/ marcH Coming soon: <a href="http://en.wikipedia.org/wiki/Just-in-time_compilation">JIT</a> Fri, 29 Oct 2010 11:11:09 +0000 Jump label https://lwn.net/Articles/412332/ https://lwn.net/Articles/412332/ nevets <div class="FormattedComment"> It's looking like a bug just with i386. I think all other archs are fine (including x86_64). In fact, it is caused by the same thing that broke the function tracer a while back ago, with the craziness gcc does without the -maccumulate-outgoing-args option.<br> </div> Thu, 28 Oct 2010 21:41:11 +0000 Trade-off https://lwn.net/Articles/412236/ https://lwn.net/Articles/412236/ nix <div class="FormattedComment"> It looks more than slightly reminiscent of the PLT's lazy binding trick to me.<br> </div> Thu, 28 Oct 2010 14:50:56 +0000 Trade-off https://lwn.net/Articles/412206/ https://lwn.net/Articles/412206/ CChittleborough <div class="FormattedComment"> With the new approach, there is very little overhead in the instrumented code: either a NOP or an unconditional branch. The overhead has been moved to compile time (setting up the table of 'jump labels') and the time at which jumps are turned on or off (by calling enable_jump_label() or disable_jump_label(), which use the table to replace the NOP with a branch or vice versa).<br> </div> Thu, 28 Oct 2010 13:22:11 +0000 Jump label https://lwn.net/Articles/412215/ https://lwn.net/Articles/412215/ i3839 <div class="FormattedComment"> There is no such thing as zero overhead. In the best case you still waste a little bit of memory per tracepoint, which all adds up to something significant if you have too many of them.<br> <p> </div> Thu, 28 Oct 2010 13:09:32 +0000 Jump label https://lwn.net/Articles/412191/ https://lwn.net/Articles/412191/ ptman <div class="FormattedComment"> Is this comparable to dtrace in Solaris? Zero overhead when probes are disabled?<br> </div> Thu, 28 Oct 2010 07:54:49 +0000 Jump label https://lwn.net/Articles/412189/ https://lwn.net/Articles/412189/ tcourbon <div class="FormattedComment"> Is there anyway to measure the actual overhead caused by the test in the current kernel ? To my naive eyes this thing looks complicated (at least from the developer point of view).<br> <p> (Furthermore does the x86 architecture include x86_64 ? If not it looks, again, over complicated for a not so impressive expected result.)<br> </div> Thu, 28 Oct 2010 07:40:46 +0000 Jump label https://lwn.net/Articles/412185/ https://lwn.net/Articles/412185/ epa <div class="FormattedComment"> Thus we take another step closer to the self-compiling kernel.<br> </div> Thu, 28 Oct 2010 07:19:59 +0000 Jump label https://lwn.net/Articles/412181/ https://lwn.net/Articles/412181/ daney <div class="FormattedComment"> Two points:<br> <p> 1) Jump label works on SPARC and MIPS too, not just x86.<br> <p> 2) Jump label doesn't work anywhere reliably due to bugs in current GCC releases. <br> </div> Thu, 28 Oct 2010 05:37:26 +0000