Re: kgdb support in vanilla 2.6.2

From: Amit S. Kale
Date: Fri Feb 06 2004 - 08:49:02 EST


On Friday 06 Feb 2004 6:54 pm, Andi Kleen wrote:
> On Fri, 6 Feb 2004 18:35:16 +0530
>
> "Amit S. Kale" <amitkale@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx> wrote:
> > > > > > On Thursday 05 Feb 2004 8:41 am, Andi Kleen wrote:
> > > > > > > Andrew Morton <akpm@xxxxxxxx> 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.

-Amit

> I could imagine in a few cases it will be useful because there may be pages
> mapped into the user address space that are not in the direct mapping
> (that's mainly on 32bit of course, on amd64 you can always access all
> memory using mappings >TASK_SIZE)
>
> -Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/