* Roland McGrath <rol...@redhat.com> wrote:

> > This kind of info should have been 1) emitted a month ago, in 
> > the middle of the development window, 2) have been part of the 
> > submission ('why do we want it' 'what will be the future 
> > benefit?').
> 
> Well, we are where we are.  I don't really know what kind of lack 
> you see in having said what its future benefits will be.  We have 
> talked out the wazoo about what utrace is for.
> 
> I also really don't understand the resistance to a new thing in a 
> new config option that depends on EXPERIMENTAL, and having the 
> smaller users bang on it and fix it in the tree for a while.

This has been the upstream merging principle for the past 15 years: 
95% of the mainline features go there with good and immediate uses, 
not with "future uses".

> You seem now to be saying that the gating event would be rewriting 
> ptrace unconditionally to require utrace, and do that way early 
> before any other hashing out of utrace in the tree.  That just 
> seems wildly nuts to me and I am confused about why you like the 
> idea. We have a new thing to shake out, so let's break a crucial 
> feature so that people uninterested in the new stuff can be stuck 
> with new bugs and regressions as early as possible!  What?  Did I 
> miss a memo? How is that the prized incrementalism that we hear so 
> much about? Isn't "ptrace works, we need ptrace, don't break 
> ptrace until you're sure you won't be breaking ptrace" what every 
> sane user wants?

I think you misunderstood my point. I never advocated the wholesale, 
unconditional rewriting of ptrace. A gradual approach there seems a 
must - and your approach of CONFIG_UTRACE_PTRACE seems like the way 
to go, initially.

What i tried to get at is the "how will the end result look like" 
qestion - because arguably a ptrace replacement will be the end 
goal.

( Note, Linus might still insist on a total replacement, if he
  finds the #ifdef approach too ugly. I dont talk for him and he is 
  usually much pickier than me. )

> You know damn well that I am 198% for the wholesale replacement of 
> ptrace.  (We hates the ptrace!)  But that is a big lump to put in 
> first, and to delay every other line of development behind.  Why 
> doesn't utrace deserve a period as EXPERIMENTAL before we force it 
> onto everyone's critical path?
> 
> If rewriting everything early on to use the new thing is such the 
> great plan, why didn't you rewrite dmesg to use ftrace ring 
> buffers before putting them in?  (It's not a serious question, but 
> I hope you recognize that the ptrace question sounds about as 
> ludicrous to me as that one does to you.)
> 
> Why is it OK to have kprobes with no in-tree users, but not 
> utrace?

Kprobes is amongst the 5% exception that proves the rule. We got 
burned by kprobes somewhat - it was merged and went nowhere for 
years and has maintenance overhead. (Btw., there are some in-tree 
users of kprobes meanwhile - but it's still largely stale.)

Kprobes is also arguably probing the kernel purely externally - so 
having it as a separate, isolated entity is somewhat understandable 
- even though it's still not ideal and if it were submitted today we 
would probably not merge it without actual, substantial in-tree 
uses.

But utrace is not a passive probe - it is an active, functional part 
of the kernel that gets built in. Utrace without a real user is like 
trying to get CONFIG_SECURITY upstream without a real user. It's 
generally an upstream non-starter.

        Ingo

Reply via email to