LWN: Comments on "Uprobes: not quite there yet" https://lwn.net/Articles/370322/ This is a special feed containing comments posted to the individual LWN article titled "Uprobes: not quite there yet". en-us Tue, 02 Sep 2025 20:30:19 +0000 Tue, 02 Sep 2025 20:30:19 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net More than one process executing the same object code https://lwn.net/Articles/374840/ https://lwn.net/Articles/374840/ oak <div class="FormattedComment"> The problem with multithreaded programs is that if you disable breakpoint <br> to let program continue, you might miss the other threads passing that <br> instruction. SSOL solution leaves the breakpoint in place and <br> runs/emulates the instruction overwritten by the breakpoint from <br> elsewhere.<br> </div> Wed, 17 Feb 2010 19:17:28 +0000 Uprobes: not quite there yet https://lwn.net/Articles/374837/ https://lwn.net/Articles/374837/ oak <div class="FormattedComment"> Even the SSOL approach one needs to "emulate" / "fix" those of the <br> instructions which use relative addressing, see Roland's old mail on the <br> subject:<br> <a rel="nofollow" href="http://sourceware.org/ml/systemtap/2007-q1/msg00571.html">http://sourceware.org/ml/systemtap/2007-q1/msg00571.html</a><br> <p> And the instructions are of course architecture specific.<br> <p> The good thing is that if one puts breakpoints just on function entry &amp; <br> exit points, those usually use fairly small set of instructions. See e.g. <br> this user-space function tracing utility that uses SSOL with breakpoints:<br> <a rel="nofollow" href="http://repository.maemo.org/pool/fremantle/free/f/functracer/">http://repository.maemo.org/pool/fremantle/free/f/functra...</a><br> <p> If breakpoints can be put anywhere, it's more of an issue. Good question <br> is how to test that emulation of all the required instructions for SSOL <br> works fine...<br> <p> </div> Wed, 17 Feb 2010 19:14:48 +0000 Uprobes: not quite there yet https://lwn.net/Articles/370667/ https://lwn.net/Articles/370667/ Tobu <p>Executables don't control their address space entirely, every library reserves some pages.</p> <p>Could the extra address space be reserved once by a library everyone links to, the libc? Utrace would write the displaced instructions into that shared space, which the process has no control over. No VMA is introduced while the process is running.</p> <p>Though that requires some coordination. It's more convenient to let the kernel do the reservation. But it can be done very early to not interfere with the process and its libraries.</p> Thu, 21 Jan 2010 19:41:45 +0000 meh https://lwn.net/Articles/370662/ https://lwn.net/Articles/370662/ Tobu The point of probes is that <tt>ls</tt> won't notice the extra few instructions. With some filtering at a privileged level, the prober won't see leaked information either. Thu, 21 Jan 2010 19:02:59 +0000 file tracing considered harmful??? https://lwn.net/Articles/370635/ https://lwn.net/Articles/370635/ faramir <div class="FormattedComment"> If I understand the suggestion that executable files should have probes attached rather then processes, then I'm against it. What if I want to attach probes when a particular user (who has a use case that triggers problems) executes 'ls' or some other frequently executed program? What happens when everyone else executes 'ls'? I admit I really don't know how probes work, but it would worry me a lot if there wasn't some way to probe installed binaries without affecting all other users of that binary. Please tell me I shouldn't be worried.<br> </div> Thu, 21 Jan 2010 17:57:13 +0000 Uprobes: not quite there yet https://lwn.net/Articles/370608/ https://lwn.net/Articles/370608/ bronson <div class="FormattedComment"> Suddenly I'm reading the project's name as UpRobes. That might be even more descriptive. :)<br> <p> Can anyone name an existing app that might break with the foreign memory area in its address space? Based on this article, the complaints about XOL sound awfully obscure.<br> <p> Adding an emulator to the kernel just for this?? That would be an endless source of problems!<br> </div> Thu, 21 Jan 2010 16:45:59 +0000 More than one process executing the same object code https://lwn.net/Articles/370578/ https://lwn.net/Articles/370578/ rvfh <div class="FormattedComment"> I believe the problem also exists for multithreaded processes...<br> </div> Thu, 21 Jan 2010 13:24:51 +0000 More than one process executing the same object code https://lwn.net/Articles/370569/ https://lwn.net/Articles/370569/ epa <div class="FormattedComment"> As I understand the article, a lot of the problems occur because more than one process might share the same page of object code (or 'text'), and so it's not possible to modify it without disrupting other processes that aren't being probed. But why not just require that a process being probed must have its own, unshared copy of the code it executes? On a modern system losing ten megabytes or so for a duplicate copy of your program and its shared libraries is not a big deal. Or perhaps some kind of copy-on-write system could be used for these pages, so only the one page modified to insert the probe need be unshared between processes?<br> <p> I'm sure the kernel hackers have considered all this but the article doesn't mention why a simpler solution isn't possible.<br> </div> Thu, 21 Jan 2010 12:13:02 +0000 Uprobes: not quite there yet https://lwn.net/Articles/370524/ https://lwn.net/Articles/370524/ chantecode <div class="FormattedComment"> We are not telling people to develop plugins for perf _instead_ of ftrace. The former doesn't supersedes the latter. They are complementary. ftrace is not deprecated. What is deprecated (in most cases) is the old ftrace plugin system (struct tracer) for new tracing code, altough it's still relevant for older tracers like function, mmiotrace, etc... Instead we recommend to use the ftrace trace event API because it is much more powerful, and it also creates events directly usable by perf.<br> <p> Thanks,<br> <p> Frederic.<br> </div> Wed, 20 Jan 2010 23:58:50 +0000