Subject: Re: linux-next: add utrace tree

From: Linus Torvalds <[email-masked]>
Date: Tue, 26 Jan 2010 08:28:15 -0800 (PST)

On Tue, 26 Jan 2010, Johannes Stezenbach wrote:
> 
> 1. If you'd merge utrace + ptrace-on-utrace, but never anything else
>    which uses the utrace API, wouldn't it still be an improvement?

I already said earlier that I'd be perfectly happy to merge utrace code, 
as long as it was clear that I'm not merging a platform for crazy work. 
IOW, the end result might be merging 99% of the code, but I want to set 
peoples _expectations_ right. I'm not at all interested in merging stuff 
that has various exported helper functions for people doing random things, 
but I could happily merge stuff that cleans up internal implementation.

> 2. A well defined utrace API makes debugging code more hackable, thus more
>    likely that someone might come up with a brilliant killer debug
>    feature in the future.

I don't really agree. 

Clean code makes things easier to improve, and maybe utrace cleans thigns 
up. But defining new API's makes me very worried, and quite frankly, the 
last thing I ever want to see is a new interface that out-of-tree modules 
starr using for random hacking.

So I'd be much happier without the whole utrace kernel interface and 
callbacks, and very much would want to avoid the whole issue of plugins. 
I'd like to see ptrace improvements - not something else.

In other words, I'd much much rather keep the utrace thing _internal_ to 
ptrace. If people have performance complaints about ptrace, let's look at 
fixing those _as_such_, rather than look at new modules etc.

> BTW, the ptrace improvements discussed elsewhere in this thread
> (like using an fd intead of signals/wait) are orthogonal
> to utrace, no?  IMHO it's a seperate discussion.

Largely, yes. Tied together to some degree of course, but the whole issue 
of code cleanup can be seen as a reasonably independent first step (while 
moving to a fd-based interface should probably not be done without some 
cleanup first, so they _are_ somewhat tied together).

		Linus