From: Jason Wessel <jason.wessel@windriver.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org,
"Frank Ch. Eigler" <fche@redhat.com>,
Roland McGrath <roland@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [git pull] kgdb-light -v10
Date: Tue, 12 Feb 2008 08:35:47 -0600 [thread overview]
Message-ID: <47B1AEC3.2080402@windriver.com> (raw)
In-Reply-To: <20080212143949.GA2258@one.firstfloor.org>
Andi Kleen wrote:
>> We might be best served to add a comment to explain the purpose of
>> kgdb_arch_pc() and put it in the optional implementation function
>> headers in include/linux/kgdb.h
>>
>> On some archs certain exceptions do not report the address that the
>> exception occurred at when you call instruction_pointer(). This optional
>> function allows for an arch to perform a "fixup" to get the address the
>> exception actually occurred at.
>
> Shouldn't that be handled in the remote gdb?
No this is a kgdb integrity check.
Basically when you reach this chunk of code it is before the hand off
to the source debugger. We cannot continue because there was a
breakpoint in a part of the system kgdb was using while doing its
normal work. The reality is that KGDB is not self contained. It
relies on some external I/O methods, atomic page fault handling and
some other pieces. If you take an exception there, the kgdb integrity
check absolutely needs to fail.
It was the source of some great pain for folks who tried to use kgdb
for more than an inspection tool. There are some parts of the system
you cannot debug.
>
>> Kgdb requires the actual exception address so a sanity check can be
>> performed to make sure kgdb did not hit an exception while in a chunk of
>> code kgdb requires for its functionality. If you hit one of these
>
> That was for the old longjmp checks, but that code is long gone isn't it
> and replacement with standard __ex_table handling.
This has nothing to do with the long jump
>
>> conditions kgdb makes its best attempt to try to "patch the wound"
>> inflicted by shooting yourself but at least you get notified vs a silent
>> hang :-)
>
> In what cases is that still needed?
>
This is a totally stupid test case but it should illustrate the problem.
- connect to kgdb
- place a break point at kgdb_disable_hw_debug()
- continue
- Now try to break in again
You will see the kgdb integrity check fail because you put a
breakpoint in a place that kgdb actually needs to perform its work.
In this case kgdb will clean up the exception and restore operation
and you will be ok. The kgdboc has a much smaller swath of code that
you cannot debug vs something like kgdboe where there are lot more
places you cannot debug due to the amount of code to services the
ethernet device, irq sync etc...
This check is absolutely required to help prevent silent death via
dumb breakpoints or stepping around in random places (which is ill
advised anyway).
Jason.
next prev parent reply other threads:[~2008-02-12 14:37 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-11 1:53 kgdb in git-x86#mm review Andi Kleen
2008-02-11 15:32 ` Frank Ch. Eigler
2008-02-11 16:11 ` Andi Kleen
2008-02-11 16:21 ` [git pull] kgdb-light -v8, (was: Re: kgdb in git-x86#mm review) Ingo Molnar
2008-02-11 16:41 ` [git pull] kgdb-light -v8, Jan Kiszka
2008-02-11 16:54 ` Ingo Molnar
2008-02-11 17:10 ` [git pull] kgdb-light -v8, (was: Re: kgdb in git-x86#mm review) Andi Kleen
2008-02-11 23:03 ` [git pull] kgdb-light -v9 Ingo Molnar
2008-02-12 10:03 ` Andi Kleen
2008-02-12 9:35 ` Sam Ravnborg
2008-02-12 10:26 ` Roland McGrath
2008-02-12 10:34 ` Ingo Molnar
2008-02-12 11:27 ` [git pull] kgdb-light -v10 Ingo Molnar
2008-02-12 12:19 ` Andi Kleen
2008-02-12 12:38 ` Ingo Molnar
2008-02-12 13:30 ` Jason Wessel
2008-02-12 14:39 ` Andi Kleen
2008-02-12 14:35 ` Jason Wessel [this message]
2008-02-12 15:36 ` Andi Kleen
2008-02-12 16:21 ` Jason Wessel
2008-02-12 17:10 ` Andi Kleen
2008-02-12 16:48 ` Jason Wessel
2008-02-12 13:50 ` Andi Kleen
2008-02-12 15:16 ` Ingo Molnar
2008-02-12 15:28 ` Andi Kleen
2008-02-12 15:28 ` Ingo Molnar
2008-02-12 16:11 ` Andi Kleen
2008-02-12 16:24 ` Ingo Molnar
2008-02-12 17:01 ` Andi Kleen
2008-02-12 16:25 ` Linus Torvalds
2008-02-12 16:42 ` Ingo Molnar
2008-02-12 17:07 ` Andi Kleen
2008-02-15 12:35 ` [RFC][PATCH] modular kgdb-light (was: Re: [git pull] kgdb-light -v10) Jan Kiszka
2008-02-15 13:32 ` Andi Kleen
2008-02-15 20:24 ` [RFC][PATCH] modular kgdb-light Jason Wessel
2008-02-15 20:36 ` [git pull] kgdb-light -v10 Jason Wessel
2008-02-12 16:46 ` Linus Torvalds
2008-02-12 17:01 ` Ingo Molnar
2008-02-12 17:10 ` Ingo Molnar
2008-02-12 18:20 ` Andi Kleen
2008-02-12 18:11 ` Linus Torvalds
2008-02-12 19:22 ` Andi Kleen
2008-02-12 19:01 ` Linus Torvalds
2008-02-12 18:20 ` Andrew Morton
2008-02-12 19:16 ` Andi Kleen
2008-02-12 21:01 ` Ingo Molnar
2008-02-12 19:34 ` Frank Ch. Eigler
2008-02-12 20:16 ` Andi Kleen
2008-02-12 13:18 ` Domenico Andreoli
2008-02-12 13:59 ` Jason Wessel
2008-02-12 15:45 ` Domenico Andreoli
2008-02-11 16:03 ` kgdb in git-x86#mm review Mark Lord
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=47B1AEC3.2080402@windriver.com \
--to=jason.wessel@windriver.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=fche@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.