From: Rusty Russell <rusty@rustcorp.com.au>
To: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Jiang Liu <jiang.liu@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [patch 2/7] x86/lguest: Do not setup unused irq vectors
Date: Mon, 03 Aug 2015 12:17:48 +0930 [thread overview]
Message-ID: <87pp356qaz.fsf@rustcorp.com.au> (raw)
In-Reply-To: <20150802203609.302168886@linutronix.de>
Thomas Gleixner <tglx@linutronix.de> writes:
> No point in assigning the interrupt vectors if there is no interrupt
> chip installed. Move it to lguest_setup_irq().
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> ---
> arch/x86/lguest/boot.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> Index: tip/arch/x86/lguest/boot.c
> ===================================================================
> --- tip.orig/arch/x86/lguest/boot.c
> +++ tip/arch/x86/lguest/boot.c
> @@ -855,17 +855,13 @@ static void lguest_disable_irq(struct pc
>
> /*
> * This sets up the Interrupt Descriptor Table (IDT) entry for each hardware
> - * interrupt (except 128, which is used for system calls), and then tells the
> - * Linux infrastructure that each interrupt is controlled by our level-based
> - * lguest interrupt controller.
> + * interrupt (except 128, which is used for system calls).
> */
> static void __init lguest_init_IRQ(void)
> {
> unsigned int i;
>
> for (i = FIRST_EXTERNAL_VECTOR; i < FIRST_SYSTEM_VECTOR; i++) {
> - /* Some systems map "vectors" to interrupts weirdly. Not us! */
> - __this_cpu_write(vector_irq[i], i - FIRST_EXTERNAL_VECTOR);
> if (i != IA32_SYSCALL_VECTOR)
> set_intr_gate(i, irq_entries_start +
> 8 * (i - FIRST_EXTERNAL_VECTOR));
> @@ -893,8 +889,15 @@ int lguest_setup_irq(unsigned int irq)
> if (err < 0 && err != -EEXIST)
> return err;
>
> + /*
> + * Tell the Linux infrastructure that the interrupt is
> + * controlled by our level-based lguest interrupt controller.
> + */
> irq_set_chip_and_handler_name(irq, &lguest_irq_controller,
> handle_level_irq, "level");
> +
> + /* Some systems map "vectors" to interrupts weirdly. Not us! */
> + __this_cpu_write(vector_irq[FIRST_EXTERNAL_VECTOR + irq, irq);
Missing ].
Then it doesn't work:
[ 3.832028] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.832028] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.832028] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.839983] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.840026] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.840026] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.840026] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.848349] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.848349] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 3.848349] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 4.056027] brd: module loaded
[ 4.156025] loop: module loaded
<hit return>
[ 17.712169] do_IRQ: 4 callbacks suppressed
[ 17.712169] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.720462] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.720462] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.729129] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.729129] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.736523] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.736523] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.744288] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.744288] do_IRQ: 0.33 No irq handler for vector (irq -1)
[ 17.751889] do_IRQ: 0.33 No irq handler for vector (irq -1)
You broke interrupts :(
Cheers,
Rusty.
next prev parent reply other threads:[~2015-08-03 2:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-02 20:38 [patch 0/7] x86: Store irq descriptor in vector array Thomas Gleixner
2015-08-02 20:38 ` [patch 1/7] x86/irq: Protect smp_cleanup_move Thomas Gleixner
2015-08-05 22:19 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-02 20:38 ` [patch 2/7] x86/lguest: Do not setup unused irq vectors Thomas Gleixner
2015-08-03 2:47 ` Rusty Russell [this message]
2015-08-03 9:40 ` Thomas Gleixner
2015-08-04 4:27 ` Rusty Russell
2015-08-04 4:32 ` [PATCH 1/2] x86/lguest: clean up lguest_setup_irq Rusty Russell
2015-08-04 4:32 ` [PATCH 2/2] x86/lguest: Do not setup unused irq vectors Rusty Russell
2015-08-05 22:19 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-05 22:18 ` [tip:x86/apic] x86/lguest: Clean up lguest_setup_irq tip-bot for Rusty Russell
2015-08-02 20:38 ` [patch 3/7] x86/irq: Replace numeric constant Thomas Gleixner
2015-08-05 22:19 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-02 20:38 ` [patch 4/7] x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED Thomas Gleixner
2015-08-05 22:20 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-02 20:38 ` [patch 5/7] x86/irq: Get rid of an indentation level Thomas Gleixner
2015-08-05 22:20 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-02 20:38 ` [patch 6/7] genirq: Provide irq_desc_has_action Thomas Gleixner
2015-08-05 22:20 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
2015-08-02 20:38 ` [patch 7/7] x86/irq: Store irq descriptor in vector array Thomas Gleixner
2015-08-05 22:21 ` [tip:x86/apic] " tip-bot for Thomas Gleixner
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=87pp356qaz.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=bhelgaas@google.com \
--cc=jiang.liu@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=x86@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.