From: George Anzinger <george@mvista.com>
To: "Amit S. Kale" <amitkale@emsyssoft.com>
Cc: Andi Kleen <ak@suse.de>,
akpm@osdl.org, pavel@ucw.cz, linux-kernel@vger.kernel.org,
piggy@timesys.com, trini@kernel.crashing.org
Subject: Re: kgdb support in vanilla 2.6.2
Date: Tue, 02 Mar 2004 13:10:37 -0800 [thread overview]
Message-ID: <4044F84D.4030003@mvista.com> (raw)
In-Reply-To: <200403011508.23626.amitkale@emsyssoft.com>
Amit S. Kale wrote:
> On Saturday 28 Feb 2004 5:35 am, George Anzinger wrote:
>
>>Amit S. Kale wrote:
>>
>>>On Friday 06 Feb 2004 6:54 pm, Andi Kleen wrote:
>>>
>>>>On Fri, 6 Feb 2004 18:35:16 +0530
>>>>
>>>>"Amit S. Kale" <amitkale@emsyssoft.com> wrote:
>>>>
>>>>>On Friday 06 Feb 2004 5:46 pm, Andi Kleen wrote:
>>>>>
>>>>>>On Fri, 6 Feb 2004 17:28:36 +0530
>>>>>>
>>>>>>"Amit S. Kale" <amitkale@emsyssoft.com> wrote:
>>>>>>
>>>>>>>On Friday 06 Feb 2004 7:50 am, Andi Kleen wrote:
>>>>>>>
>>>>>>>>On Thu, 5 Feb 2004 23:20:04 +0530
>>>>>>>>
>>>>>>>>"Amit S. Kale" <amitkale@emsyssoft.com> wrote:
>>>>>>>>
>>>>>>>>>On Thursday 05 Feb 2004 8:41 am, Andi Kleen wrote:
>>>>>>>>>
>>>>>>>>>>Andrew Morton <akpm@osdl.org> writes:
>>>>>>>>>>
>>>>>>>>>>>need to take a look at such things and really convice
>>>>>>>>>>>ourselves that they're worthwhile. Personally, I'd only be
>>>>>>>>>>>interested in the basic stub.
>>>>>>>>>>
>>>>>>>>>>What I found always extremly ugly in the i386 stub was that it
>>>>>>>>>>uses magic globals to talk to the page fault handler. For the
>>>>>>>>>>x86-64 version I replaced that by just using __get/__put_user
>>>>>>>>>>in the memory accesses, which is much cleaner. I would suggest
>>>>>>>>>>doing that for i386 too.
>>>>>>>>>
>>>>>>>>>May be I am missing something obvious. When debugging a page
>>>>>>>>>fault handler if kgdb accesses an swapped-out user page doesn't
>>>>>>>>>it deadlock when trying to hold mm semaphore?
>>>>>>>>
>>>>>>>>Modern i386 kernels don't grab the mm semaphore when the access is
>>>>>>>>
>>>>>>>>
>>>>>>>>>= TASK_SIZE and the access came from kernel space (actually I see
>>>>>>>>
>>>>>>>>x86-64 still does, but that's a bug, will fix). You could only see
>>>>>>>>a deadlock when using user addresses and you already hold the mm
>>>>>>>>semaphore for writing (normal read lock is ok). Just don't do that.
>>>>>>>
>>>>>>>OK. It don't deadlock when kgdb accesses kernel addresses.
>>>>>>>
>>>>>>>When a user space address is accessed through kgdb, won't the kernel
>>>>>>>attempt to fault in the user page? We don't want that to happen
>>>>>>>inside kgdb.
>>>>>>
>>>>>>Yes, it will. But I don't think it's a bad thing. If the users doesn't
>>>>>>want that they should not follow user addresses. After all kgdb is for
>>>>>>people who know what they are doing.
>>>>>
>>>>>Let kgdb refuse to access any addresses below TASK_SIZE. That's better
>>>>>than accidentally typing something and getting lost.
>>>>
>>>>That's fine. But can you perhaps add a magic command that enables it
>>>>again?
>>>
>>>Yes. This sounds good.
>>
>>This could be a flag in the kgdb_info structure. See -mm kgdb. Does not
>>require any new commands as it is just a global the user can change.
>
>
> Having all user modifiable variables in one place is definitely a good idea.
> Need to do this sometime.
I also put the discovered status of each cpu other than the current one here.
The structure is explained in the documentation part of the -mm patch. Another
thing I put here and have found to be very useful is the address that the stub
was called from. Often it is not clear just why we are in the stub, given that
we trap such things as kernel page faults, NMI watchdog, BUG macros and such. I
have found, on occasion, that knowing this info has been key to understanding
what was wrong.
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
next prev parent reply other threads:[~2004-03-02 21:12 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20040204230133.GA8702@elf.ucw.cz.suse.lists.linux.kernel>
[not found] ` <20040204155452.4 9c1eba8.akpm@osdl.org.suse.lists.linux.kernel>
[not found] ` <20040204152137.500e8319.akpm@osdl.org.suse.lists.linux.kernel>
[not found] ` <402182B8.7030900@timesys.com.suse.lists.linux.kernel>
[not found] ` <20040204155452.49c1eba8.akpm@osdl.org.suse.lists.linux.kernel>
2004-02-05 3:11 ` kgdb support in vanilla 2.6.2 Andi Kleen
2004-02-05 12:16 ` Pavel Machek
2004-02-05 17:50 ` Amit S. Kale
2004-02-06 2:20 ` Andi Kleen
2004-02-06 11:58 ` Amit S. Kale
2004-02-06 12:16 ` Andi Kleen
2004-02-06 13:05 ` Amit S. Kale
2004-02-06 13:24 ` Andi Kleen
2004-02-06 13:44 ` Amit S. Kale
2004-02-28 0:05 ` George Anzinger
2004-03-01 9:38 ` Amit S. Kale
2004-03-02 21:10 ` George Anzinger [this message]
2004-03-02 21:27 ` Andrew Morton
2004-03-02 23:52 ` George Anzinger
2004-03-03 5:08 ` Amit S. Kale
2004-03-03 16:06 ` Tom Rini
2004-03-04 0:42 ` George Anzinger
2004-03-03 10:05 ` Andi Kleen
2004-03-04 0:43 ` George Anzinger
2004-03-04 0:50 ` Andi Kleen
2004-03-04 5:06 ` Amit S. Kale
2004-03-04 5:18 ` Andrew Morton
2004-03-04 5:29 ` Amit S. Kale
2004-03-04 5:44 ` Andrew Morton
2004-03-04 20:54 ` George Anzinger
2004-03-04 21:03 ` Tom Rini
2004-03-04 23:15 ` George Anzinger
2004-03-04 13:01 ` Andi Kleen
2004-02-11 14:52 ` Amit S. Kale
2004-02-10 21:56 ` George Anzinger
2004-02-13 19:42 ` Andi Kleen
2004-02-12 1:34 ` George Anzinger
2004-02-12 8:33 ` Andi Kleen
2004-02-27 21:09 ` Piet Delaney
2004-02-27 21:58 ` George Anzinger
2004-02-27 23:33 ` Pavel Machek
2004-02-04 23:01 Pavel Machek
2004-02-04 23:21 ` Andrew Morton
2004-02-04 23:24 ` Pavel Machek
2004-02-04 23:45 ` Andrew Morton
2004-02-04 23:55 ` Tom Rini
2004-02-05 0:16 ` Andrew Morton
2004-02-05 0:23 ` Tom Rini
2004-02-20 0:15 ` George Anzinger
2004-02-04 23:39 ` La Monte H.P. Yarroll
2004-02-04 23:54 ` Andrew Morton
2004-02-05 1:19 ` Pavel Machek
2004-02-20 0:24 ` George Anzinger
2004-02-05 0:39 ` Pavel Machek
2004-02-04 23:52 ` Tom Rini
2004-02-05 0:17 ` Paul Mundt
2004-02-05 0:32 ` Tom Rini
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=4044F84D.4030003@mvista.com \
--to=george@mvista.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=amitkale@emsyssoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=piggy@timesys.com \
--cc=trini@kernel.crashing.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox