On Wed, Aug 03, 2005 at 03:05:31PM +0200, Andi Kleen wrote:
> 
> Only reading the changes outside kgdb.c....
> 
> > +
> > +#ifdef CONFIG_KGDB
> > +   /*
> > +    * Has KGDB been told to break as soon as possible?
> > +    */
> > +   if (kgdb_initialized == -1)
> > +           tasklet_schedule(&kgdb_tasklet_breakpoint);
> 
> That doesn't make much sense here. tasklet will only run when interrupts
> are enabled, and that is much later. You could move it to there.

Where?  Keep in mind it's really only x86_64 that isn't able to break
sooner.

> > diff -puN include/asm-x86_64/hw_irq.h~x86_64-lite 
> > include/asm-x86_64/hw_irq.h
> > --- linux-2.6.13-rc3/include/asm-x86_64/hw_irq.h~x86_64-lite        
> > 2005-07-29 13:19:10.000000000 -0700
> > +++ linux-2.6.13-rc3-trini/include/asm-x86_64/hw_irq.h      2005-07-29 
> > 13:19:10.000000000 -0700
> > @@ -55,6 +55,7 @@ struct hw_interrupt_type;
> >  #define TASK_MIGRATION_VECTOR      0xfb
> >  #define CALL_FUNCTION_VECTOR       0xfa
> >  #define KDB_VECTOR 0xf9
> > +#define KGDB_VECTOR        0xf8
> 
> I already allocated these vectors for something else.

Is there another we can use?  Just following what looked to be the
logical order.

> >  #define THERMAL_APIC_VECTOR        0xf0
> >  
> > diff -puN include/asm-x86_64/ipi.h~x86_64-lite include/asm-x86_64/ipi.h
> > --- linux-2.6.13-rc3/include/asm-x86_64/ipi.h~x86_64-lite   2005-07-29 
> > 13:19:10.000000000 -0700
> > +++ linux-2.6.13-rc3-trini/include/asm-x86_64/ipi.h 2005-07-29 
> > 13:19:10.000000000 -0700
> > @@ -62,6 +62,12 @@ static inline void __send_IPI_shortcut(u
> >      * No need to touch the target chip field
> >      */
> >     cfg = __prepare_ICR(shortcut, vector, dest);
> > +        if (vector == KGDB_VECTOR) {
> > +                 /*
> > +                  * KGDB IPI is to be delivered as a NMI
> > +                  */
> > +                 cfg = (cfg&~APIC_VECTOR_MASK)|APIC_DM_NMI;
> > +         }
> 
> No way adding another ugly special case like this. I wanted
> to rip out the KDB version for a long time.

I'd be happy to rework it in a cleaner manner, just point me at an
example please.

> If anything pass a flag.

In __send_IPI_shortcut?  OK.

> >     ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15"
> >  
> >  #define switch_to(prev,next,last) \
> > -   asm volatile(SAVE_CONTEXT                                               
> >     \
> > +       asm volatile(".globl __switch_to_begin\n\t"                         
> >     \
> > +                "__switch_to_begin:\n\t"                                   
> >   \
> > +                SAVE_CONTEXT                                               
> >   \
> 
> Why is this needed?

So that backtraces show they're in switch_to rather than somewhere else
(since it's a #define we wouldn't know otherwise).

-- 
Tom Rini
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to