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.

Reply via email to