All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: "Jan Beulich" <JBeulich@novell.com>
Cc: linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: [discuss] [PATCH] add and handle NMI_VECTOR II
Date: Fri, 9 Sep 2005 08:55:52 +0200	[thread overview]
Message-ID: <200509090855.52752.ak@suse.de> (raw)
In-Reply-To: <43214AE402000078000247AB@emea1-mh.id2.novell.com>

On Friday 09 September 2005 08:42, Jan Beulich wrote:
> >Index: linux/include/asm-x86_64/hw_irq.h
> >===================================================================
> >--- linux.orig/include/asm-x86_64/hw_irq.h
> >+++ linux/include/asm-x86_64/hw_irq.h
> >@@ -52,7 +52,7 @@ struct hw_interrupt_type;
> > #define ERROR_APIC_VECTOR	0xfe
> > #define RESCHEDULE_VECTOR	0xfd
> > #define CALL_FUNCTION_VECTOR	0xfc
> >-#define KDB_VECTOR		0xfb	/* reserved for KDB */
> >+#define NMI_VECTOR		0xfb	/* IPI NMIs for debugging */
> > #define THERMAL_APIC_VECTOR	0xfa
> > /* 0xf9 free */
> > #define INVALIDATE_TLB_VECTOR_END	0xf8
>
> This doesn't seem too good an idea: the NMI vector really is 0x02
> (architecturally), so defining it to something else seems at least odd.

Good point. Actually the consensus (or the patch from T.Rini) was 
to name it DEBUG_VECTOR, but I messed that up. Will fix.

>
> >Index: linux/arch/x86_64/kernel/traps.c
> >===================================================================
> >--- linux.orig/arch/x86_64/kernel/traps.c
> >+++ linux/arch/x86_64/kernel/traps.c
> >@@ -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.
>
> I never understood what this does. If you deliver the IPI as an NMI,
> it'll never arrive at this vector, and why would anyone want to put an
> "int $NMI_VECTOR" anywhere?

You can force an NMI when sending an IPI by setting the right bits
in ICR. That is what it is used for.

-Andi

  reply	other threads:[~2005-09-09  6:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-08 16:07 [PATCH] add and handle NMI_VECTOR Jan Beulich
2005-09-09  0:20 ` [discuss] " Andi Kleen
2005-09-09  0:43   ` [discuss] [PATCH] add and handle NMI_VECTOR II Andi Kleen
2005-09-09  6:42     ` Jan Beulich
2005-09-09  6:55       ` Andi Kleen [this message]
2005-09-09  7:13         ` Jan Beulich
2005-09-09  7:14           ` Andi Kleen
2005-09-09  7:57             ` Jan Beulich
2005-09-09  7:58               ` Andi Kleen
2005-09-09  8:50 ` [discuss] [PATCH] add and handle NMI_VECTOR Andi Kleen
2005-09-09  9:14   ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200509090855.52752.ak@suse.de \
    --to=ak@suse.de \
    --cc=JBeulich@novell.com \
    --cc=discuss@x86-64.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.