public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR
@ 2005-08-08 19:27 Tom Rini
  2005-08-08 19:28 ` Andi Kleen
  0 siblings, 1 reply; 5+ messages in thread
From: Tom Rini @ 2005-08-08 19:27 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, trini, ak, kaos


CC: Andi Kleen <ak@suse.de>, Keith Owens <kaos@sgi.com>
The existing hook from KDB in the IPI code is really just a hook for the
NMI vector.  We rename the vector thusly and then it's up to the
debugger to handle things from default_do_nmi().

---

 linux-2.6.13-rc6-trini/arch/x86_64/kernel/i8259.c  |    2 +-
 linux-2.6.13-rc6-trini/arch/x86_64/kernel/smp.c    |    2 +-
 linux-2.6.13-rc6-trini/arch/x86_64/kernel/traps.c  |    2 +-
 linux-2.6.13-rc6-trini/include/asm-x86_64/hw_irq.h |    2 +-
 linux-2.6.13-rc6-trini/include/asm-x86_64/ipi.h    |    2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff -puN arch/x86_64/kernel/i8259.c~x86_64-rename_kdb_vector arch/x86_64/kernel/i8259.c
--- linux-2.6.13-rc6/arch/x86_64/kernel/i8259.c~x86_64-rename_kdb_vector	2005-08-08 12:22:37.000000000 -0700
+++ linux-2.6.13-rc6-trini/arch/x86_64/kernel/i8259.c	2005-08-08 12:22:37.000000000 -0700
@@ -544,7 +544,7 @@ void __init init_IRQ(void)
 		int vector = FIRST_EXTERNAL_VECTOR + i;
 		if (i >= NR_IRQS)
 			break;
-		if (vector != IA32_SYSCALL_VECTOR && vector != KDB_VECTOR) { 
+		if (vector != IA32_SYSCALL_VECTOR && vector != NMI_VECTOR) {
 			set_intr_gate(vector, interrupt[i]);
 	}
 	}
diff -puN arch/x86_64/kernel/smp.c~x86_64-rename_kdb_vector arch/x86_64/kernel/smp.c
--- linux-2.6.13-rc6/arch/x86_64/kernel/smp.c~x86_64-rename_kdb_vector	2005-08-08 12:22:37.000000000 -0700
+++ linux-2.6.13-rc6-trini/arch/x86_64/kernel/smp.c	2005-08-08 12:22:37.000000000 -0700
@@ -252,7 +252,7 @@ void flush_tlb_all(void)
 
 void smp_kdb_stop(void)
 {
-	send_IPI_allbutself(KDB_VECTOR);
+	send_IPI_allbutself(NMI_VECTOR);
 }
 
 /*
diff -puN arch/x86_64/kernel/traps.c~x86_64-rename_kdb_vector arch/x86_64/kernel/traps.c
--- linux-2.6.13-rc6/arch/x86_64/kernel/traps.c~x86_64-rename_kdb_vector	2005-08-08 12:22:37.000000000 -0700
+++ linux-2.6.13-rc6-trini/arch/x86_64/kernel/traps.c	2005-08-08 12:22:37.000000000 -0700
@@ -931,7 +931,7 @@ void __init trap_init(void)
 	set_system_gate(IA32_SYSCALL_VECTOR, ia32_syscall);
 #endif
        
-	set_intr_gate(KDB_VECTOR, call_debug);
+	set_intr_gate(NMI_VECTOR, call_debug);
        
 	/*
 	 * Should be a barrier for any external CPU state.
diff -puN include/asm-x86_64/hw_irq.h~x86_64-rename_kdb_vector include/asm-x86_64/hw_irq.h
--- linux-2.6.13-rc6/include/asm-x86_64/hw_irq.h~x86_64-rename_kdb_vector	2005-08-08 12:22:37.000000000 -0700
+++ linux-2.6.13-rc6-trini/include/asm-x86_64/hw_irq.h	2005-08-08 12:22:37.000000000 -0700
@@ -54,7 +54,7 @@ struct hw_interrupt_type;
 #define RESCHEDULE_VECTOR	0xfc
 #define TASK_MIGRATION_VECTOR	0xfb
 #define CALL_FUNCTION_VECTOR	0xfa
-#define KDB_VECTOR	0xf9
+#define NMI_VECTOR	0xf9
 
 #define THERMAL_APIC_VECTOR	0xf0
 
diff -puN include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector include/asm-x86_64/ipi.h
--- linux-2.6.13-rc6/include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector	2005-08-08 12:22:37.000000000 -0700
+++ linux-2.6.13-rc6-trini/include/asm-x86_64/ipi.h	2005-08-08 12:22:37.000000000 -0700
@@ -32,7 +32,7 @@
 static inline unsigned int __prepare_ICR (unsigned int shortcut, int vector, unsigned int dest)
 {
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;
 	return icr;
 }
_

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR
  2005-08-08 19:27 [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR Tom Rini
@ 2005-08-08 19:28 ` Andi Kleen
  2005-08-08 23:14   ` Keith Owens
  0 siblings, 1 reply; 5+ messages in thread
From: Andi Kleen @ 2005-08-08 19:28 UTC (permalink / raw)
  To: Tom Rini; +Cc: akpm, linux-kernel, ak, kaos

On Mon, Aug 08, 2005 at 12:27:10PM -0700, Tom Rini wrote:
>  {
>  	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
> -	if (vector == KDB_VECTOR)
> +	if (vector == NMI_VECTOR)
>  		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;

That if () should be removed since it's useless.
Can you do that please?

-Andi

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR
  2005-08-08 19:28 ` Andi Kleen
@ 2005-08-08 23:14   ` Keith Owens
  2005-08-08 23:16     ` Andi Kleen
  0 siblings, 1 reply; 5+ messages in thread
From: Keith Owens @ 2005-08-08 23:14 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Tom Rini, akpm, linux-kernel

On Mon, 8 Aug 2005 21:28:50 +0200, 
Andi Kleen <ak@suse.de> wrote:
>On Mon, Aug 08, 2005 at 12:27:10PM -0700, Tom Rini wrote:
>>  {
>>  	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
>> -	if (vector == KDB_VECTOR)
>> +	if (vector == NMI_VECTOR)
>>  		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;
>
>That if () should be removed since it's useless.
>Can you do that please?

Why is 'if ()' useless?  Remove the if test and all ipis get sent as
NMI, we definitely do not want that.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR
  2005-08-08 23:14   ` Keith Owens
@ 2005-08-08 23:16     ` Andi Kleen
  2005-08-08 23:39       ` Keith Owens
  0 siblings, 1 reply; 5+ messages in thread
From: Andi Kleen @ 2005-08-08 23:16 UTC (permalink / raw)
  To: Keith Owens; +Cc: Andi Kleen, Tom Rini, akpm, linux-kernel

On Tue, Aug 09, 2005 at 09:14:52AM +1000, Keith Owens wrote:
> On Mon, 8 Aug 2005 21:28:50 +0200, 
> Andi Kleen <ak@suse.de> wrote:
> >On Mon, Aug 08, 2005 at 12:27:10PM -0700, Tom Rini wrote:
> >>  {
> >>  	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
> >> -	if (vector == KDB_VECTOR)
> >> +	if (vector == NMI_VECTOR)
> >>  		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;
> >
> >That if () should be removed since it's useless.
> >Can you do that please?
> 
> Why is 'if ()' useless?  Remove the if test and all ipis get sent as
> NMI, we definitely do not want that.

The if () with its following line. The same result can be gotten
by passing suitable arguments.

-Andi

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR
  2005-08-08 23:16     ` Andi Kleen
@ 2005-08-08 23:39       ` Keith Owens
  0 siblings, 0 replies; 5+ messages in thread
From: Keith Owens @ 2005-08-08 23:39 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Tom Rini, akpm, linux-kernel

On Tue, 9 Aug 2005 01:16:37 +0200, 
Andi Kleen <ak@suse.de> wrote:
>On Tue, Aug 09, 2005 at 09:14:52AM +1000, Keith Owens wrote:
>> On Mon, 8 Aug 2005 21:28:50 +0200, 
>> Andi Kleen <ak@suse.de> wrote:
>> >On Mon, Aug 08, 2005 at 12:27:10PM -0700, Tom Rini wrote:
>> >>  {
>> >>  	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
>> >> -	if (vector == KDB_VECTOR)
>> >> +	if (vector == NMI_VECTOR)
>> >>  		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;
>> >
>> >That if () should be removed since it's useless.
>> >Can you do that please?
>> 
>> Why is 'if ()' useless?  Remove the if test and all ipis get sent as
>> NMI, we definitely do not want that.
>
>The if () with its following line. The same result can be gotten
>by passing suitable arguments.

Arguments to what?  The path for sending the NMI_VECTOR is
send_IPI_allbutself -> {cluster,flat,physflat}_send_IPI_allbutself ->
{__send_IPI_shortcut, physflat_send_IPI_mask, cluster_send_IPI_mask} ->
send_IPI_mask_sequence -> __prepare_ICR.

Pushing the check for NMI_VECTOR any higher than __prepare_ICR needs
multiple tests for NMI_VECTOR.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-08-08 23:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-08 19:27 [patch 1/1] x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR Tom Rini
2005-08-08 19:28 ` Andi Kleen
2005-08-08 23:14   ` Keith Owens
2005-08-08 23:16     ` Andi Kleen
2005-08-08 23:39       ` Keith Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox