On Thursday 17 August 2006 04:19, Piet Delaney wrote:
> On Wed, 2006-08-16 at 11:41 +0530, Amit S. Kale wrote:
> > Hi Kevin,
> >
> > Thanks for reporting this problem. Looking more into KGDB patches, this
> > seems to be present on all platforms.
> >
> > KGDB shouldn't access user level memory at all. There is a comparison of
> > requested address against TASK_SIZE in kernel/kgdb.c functions to take
> > care of this. kgdb_set_mem and kgdb_get_mem functions in present
> > kernel/kgdb.c contain this check but kgdb_mem2hex, kgdb_ebin2mem,
> > kgdb_hex2mem don't. We need to add this check to these three functions
> > also.
>
> I recall having a problem with the 2.6.12/2.6.13 kgdb patch when using
> gdb in user space and using a watchpoint. I believe this uses Intel
> debug hardware and I think somehow got involved with kgdb. If I see it
> again I'll let ya know.
It would have been because of the same problem. Needs to be fixed asap.
-Amit
>
> -piet
>
> > -Amit
> >
> > On Thursday 10 August 2006 04:00, Kevin Hilman wrote:
> > > There's a problem in handling kgdb-triggered memory faults on ARM when
> > > the process in question has a user context.
> > >
> > > To reproduce, set a breakpoint at a system call (sys_sync for example),
> > > once the breakpoint is hit, do an 'info threads'. In the process of
> > > doing this, kgdb_mem2hex may trigger a memory fault, but since this
> > > process has a user context, it doesn't take the path with the kgdb
> > > setjmp/longjmp fixups. Even worse, it eventually ends up in do_no_page
> > > which can sleep, and since kgdb has disabled interrupts, a 'scheduling
> > > while atomic' BUG appears.
> > >
> > > It seems to work OK with no preemption, but this bug arises under
> > > CONFIG_PREEMPT.
> > >
> > > Patch below has been verified on a MontaVista 2.6.10 kernel (ARMv5, and
> > > v6) but should be same on newer kernels.
> > >
> > > Kevin
> > >
> > > Index: linux-2.6.10/arch/arm/mm/fault.c
> > > ===================================================================
> > > --- linux-2.6.10.orig/arch/arm/mm/fault.c
> > > +++ linux-2.6.10/arch/arm/mm/fault.c
> > > @@ -217,6 +217,10 @@ out:
> > > return fault;
> > > }
> > >
> > > +#ifdef CONFIG_KGDB
> > > +extern int kgdb_may_fault;
> > > +#endif
> > > +
> > > static int
> > > do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs
> > > *regs) {
> > > @@ -227,6 +231,11 @@ do_page_fault(unsigned long addr, unsign
> > > tsk = current;
> > > mm = tsk->mm;
> > >
> > > +#ifdef CONFIG_KGDB
> > > + if (kgdb_may_fault)
> > > + goto no_context;
> > > +#endif
> > > +
> > > /*
> > > * If we're in an interrupt or have no user
> > > * context, we must not take the fault..
> > >
> > > -----------------------------------------------------------------------
> > >-- Using Tomcat but need to do more? Need to support web services,
> > > security? Get stuff done quickly with pre-integrated technology to make
> > > your job easier Download IBM WebSphere Application Server v.1.0.1 based
> > > on Apache Geronimo
> > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=12164
> > >2 _______________________________________________
> > > Kgdb-bugreport mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport
> >
> > -------------------------------------------------------------------------
> > Using Tomcat but need to do more? Need to support web services, security?
> > Get stuff done quickly with pre-integrated technology to make your job
> > easier Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > _______________________________________________
> > Kgdb-bugreport mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport