On Fri, 20 Mar 2009 18:41:40 -0700 (PDT) Roland McGrath <rol...@redhat.com> wrote:
> This adds the utrace facility, a new modular interface in the kernel for > implementing user thread tracing and debugging. This fits on top of the > tracehook_* layer, so the new code is well-isolated. > > The new interface is in <linux/utrace.h> and the DocBook utrace book > describes it. It allows for multiple separate tracing engines to work in > parallel without interfering with each other. Higher-level tracing > facilities can be implemented as loadable kernel modules using this layer. > > The new facility is made optional under CONFIG_UTRACE. > When this is not enabled, no new code is added. > It can only be enabled on machines that have all the > prerequisites and select CONFIG_HAVE_ARCH_TRACEHOOK. > > In this initial version, utrace and ptrace do not play together at all. > If ptrace is attached to a thread, the attach calls in the utrace kernel > API return -EBUSY. If utrace is attached to a thread, the PTRACE_ATTACH > or PTRACE_TRACEME request will return EBUSY to userland. The old ptrace > code is otherwise unchanged and nothing using ptrace should be affected > by this patch as long as utrace is not used at the same time. In the > future we can clean up the ptrace implementation and rework it to use > the utrace API. I'd be interested in seeing a bit of discussion regarding the overall value of utrace - it has been quite a while since it floated past. I assume that redoing ptrace to be a client of utrace _will_ happen, and that this is merely a cleanup exercise with no new user-visible features? The "prototype utrace-ftrace interface" seems to be more a cool toy rather than a serious new kernel feature (yes?) If so, what are the new killer utrace clients which would justify all these changes? Also, is it still the case that RH are shipping utrace? If so, for what reasons and what benefits are users seeing from it? And I recall that there were real problems wiring up the Feb 2007 version of utrace to the ARM architecture. Have those issues been resolved? Are any problems expected for any architectures? Thanks.