Re: [patch 07/15] Basic x86_64 support

From: Tom Rini
Date: Thu Aug 04 2005 - 09:07:23 EST


On Thu, Aug 04, 2005 at 02:39:00PM +0200, Andi Kleen wrote:
> > > 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.
>
> The local_irq_enable() call in init/main.c:start_kernel()

But as I say, only x86_64 needs this kind of delay.

> If you want to run gdb earlier you need to do it without a tasklet.

We really would like to try again once stacks are setup (IOW, once
if ((&__get_cpu_var(init_tss))[0].ist[0])) is true).

> > > > --- 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.
>
> How about you use KDB_VECTOR and rename it to DEBUG_VECTOR
> and then just check if kgdb is currently active?

I can do the kgdb and generic changes at least.

[snip]
> > > > 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.
>
> The code is equivalent to passing shortcut|APIC_DM_NMI and vector == 0

OK. I'll see if I can change things around then, thanks.

--
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/