On Tue, Nov 24, 2009 at 09:41:52PM +0100, Oleg Nesterov wrote: > On 11/24, Andi Kleen wrote: > > > > Oleg Nesterov <o...@redhat.com> writes: > > > > > From: Roland McGrath <rol...@redhat.com> > > > > > > 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. > > > > Could we just drop the tracehook layer if this finally merged > > and call the low level functions directly? > > Not sure I understand. Tracehooks are trivial inline wrappers on > top utrace calls,
Yes that's the problem -- they are unnecessary obfuscation when you can just call directly. > > > It might have been reasonably early on when it was still out of tree, > > but longer term when it's integrated having strange opaque hooks > > like that just makes the coder harder to read and maintain. > > Well, I don't think the code will be better if we remove tracehooks. > > For example. tracehook_report_syscall_entry() has a lot of callers > in arch/, each callsite should be changed to do > > if ((task_utrace_flags(current) & UTRACE_EVENT(SYSCALL_ENTRY)) && > utrace_report_syscall_entry(regs)) > ret = -1; // this depends on machine > > instead of simply calling tracehook_report_syscall_entry(). That should be in the utrace code? I don't have a problem with having common code somewhere, just not a whole layer whose only purpose seems to be obfuscation. > What is the point? Less code obfuscation. When it's a utrace call, call it a utrace call, not something else. -Andi -- a...@linux.intel.com -- Speaking for myself only.