public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org,
	utrace-devel <utrace-devel@redhat.com>,
	Roland McGrath <roland@redhat.com>,
	Jim Keniston <jkenisto@us.ibm.com>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Subject: Re: [RFC] [PATCH] In-kernel gdbstub based on utrace Infrastructure.
Date: Tue, 1 Dec 2009 22:15:18 +0100	[thread overview]
Message-ID: <20091201211518.GA32376@elte.hu> (raw)
In-Reply-To: <20091201174534.GE10331@redhat.com>


* Frank Ch. Eigler <fche@redhat.com> wrote:

> Hi -  
> 
> > > Only in name.  One is highly invasive, for debugging the kernel across 
> > > serial consoles.  The other is highly noninvasive, for debugging user 
> > > processes across normal userspace channels.  They both happen to talk 
> > > to gdb, but that's the end of the natural "overlap".
> > [...]
> 
> > Well nothing that you mention here changes our obvious suggestion 
> > that an in-kernel gdb stub should obviously either be a kgdb 
> > extension, or a replacement of it.
> 
> Help me out here: by "kgdb extension" do you imagine "something new 
> that an unprivileged user can use to debug his own process"?  Or do 
> you imagine a new userspace facility that single-steps the kernel?

Is this a trick question? Single-stepping the kernel on the same system 
[especially if it's an UP system] would certainly be a challenge ;-)

What i mean is what i said: if you provide a new framework (especially 
if it's user visible - which both kgdb and the gdb stub is) you should 
either fully replace existing functionality or extend it. Overlapping it 
in an incomplete way is not useful to anyone.

Extending kgdb to allow the use of it as if we used gdb locally would 
certainly be interesting - and then you could drop into the kernel 
anytime as well. But i'm not siding with any particular solution - i'm 
just seconding Peter's point that there's very clear overlap and 
inconsistency, and that ought to be resolved one way or another.

> > We dont want to separate facilities for the same conceptual thing:
> > examining application state (be that in user-space and
> > kernel-space).
> 
> This seems like a shallow sort of consistency.  kgdb was added after 
> ptrace existed -- why not extend ptrace instead to target the kernel? 
> After all, it's "examining application state".  The answer is that it 
> doesn't make a heck of a lot of sense.

kgdb simply used gdb's preferred way of remote debugging. That's 
certainly the ugliest bit of it btw - but it's an externality to kgdb.

Had it extended ptrace it wouldnt have gdb compatibility.

So i think this example of yours is inapposite as well.

Having said all that, i certainly subscribe to the view that neither 
kgdb nor ptrace is particularly cleanly done. So i wouldnt mind if 
something new existed that had a modern, flexible, extensible and 
generally pleasant interface and implementation. If you are heading in 
that direction, please let me know.

> > > > Btw., perf does meet that definition: it functionally replaces all 
> > > > facilities that it overlaps/extends - such as Oprofile. [...]
> > > 
> > > (And they currently separately coexist.)
> > 
> > You didnt get my point apparently. Keeping the overlapped facility for 
> > compatibility (and general user inertia) is fine. Creating a new 
> > facility that doesnt do everything that the existing facility does, and 
> > not integrating it either, is not fine.
> 
> oprofile and perfctr are closer in concept than kgdb and ptrace, yet 
> AFAIK perfctr doesn't "interface" to oprofile, except perhaps to the 
> extent of resolving contention over the underlying physical resources. 
> In any case this is not a great analogy.

(FYI, 'perfctr' is a different project that has existed for years, i 
suspect you meant perf events?)

perf replaces oprofile functionally. If the in-kernel gdb stub replaced 
kgdb functionally you'd hear no complaints from me.

	Ingo

  reply	other threads:[~2009-12-01 21:15 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-30 12:03 [RFC] [PATCH] In-kernel gdbstub based on utrace Infrastructure Srikar Dronamraju
2009-11-30 12:09 ` Peter Zijlstra
2009-11-30 12:32   ` Srikar Dronamraju
2009-11-30 12:41     ` Peter Zijlstra
2009-11-30 13:19       ` Srikar Dronamraju
2009-11-30 13:37         ` Peter Zijlstra
2009-11-30 14:05           ` Srikar Dronamraju
2009-11-30 15:03           ` Frank Ch. Eigler
2009-11-30 15:11             ` Peter Zijlstra
2009-11-30 15:16             ` Ingo Molnar
2009-11-30 15:29               ` Frank Ch. Eigler
2009-12-01 16:11                 ` Ingo Molnar
2009-12-01 17:00                   ` Frank Ch. Eigler
2009-12-01 17:09                     ` Ingo Molnar
2009-12-01 17:45                       ` Frank Ch. Eigler
2009-12-01 21:15                         ` Ingo Molnar [this message]
2009-12-08 21:58                           ` Frank Ch. Eigler
2009-12-10  7:41                             ` Ingo Molnar
2009-12-10 15:08                               ` Frank Ch. Eigler
2009-12-10 18:16                                 ` Ingo Molnar
2009-12-11  1:27                                   ` Frank Ch. Eigler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091201211518.GA32376@elte.hu \
    --to=mingo@elte.hu \
    --cc=ananth@in.ibm.com \
    --cc=fche@redhat.com \
    --cc=jkenisto@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=roland@redhat.com \
    --cc=srikar@linux.vnet.ibm.com \
    --cc=utrace-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox