From: Jan Kiszka <jan.kiszka@siemens.com>
To: Henning Schild <henning.schild@siemens.com>, xenomai@xenomai.org
Subject: Re: [Xenomai] [PATCH] x86/ipipe: reserve irq num we use for IRQ_MOVE_CLEANUP_VECTOR
Date: Wed, 26 Aug 2015 20:32:57 +0200 [thread overview]
Message-ID: <55DE0659.9050803@siemens.com> (raw)
In-Reply-To: <1440608463-31708-1-git-send-email-henning.schild@siemens.com>
On 2015-08-26 19:01, Henning Schild wrote:
> vector_irq must not contain the same irq number for two different
> vectors because ipipe dispatches based on irq numbers.
> For the special case of IRQ_MOVE_CLEANUP_VECTOR, the ipipe patch
> inserts a new entry in vector_irq. To ensure the required uniqueness
> we have to make sure Linux will never make a vector point to irq number
> IRQ_MOVE_CLEANUP_VECTOR.
>
> Before that patch ipipe did dispatch device interrupts that happened to
> receive number 32 (IRQ_MOVE_CLEANUP_VECTOR) to the cleanup function, the
> device effectively lost its interrupts. Up to 3.18 that was no problem
> since the allocator did not hand out the number ipipe failed to reserve.
>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
> arch/x86/kernel/irqinit.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c
> index e850981..5ca0ec7 100644
> --- a/arch/x86/kernel/irqinit.c
> +++ b/arch/x86/kernel/irqinit.c
> @@ -143,9 +143,12 @@ static void __init smp_intr_init(void)
> /* Low priority IPI to cleanup after moving an irq */
> set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
> set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
> +#ifdef CONFIG_IPIPE
> + BUG_ON(IRQ_MOVE_CLEANUP_VECTOR != irq_alloc_descs(IRQ_MOVE_CLEANUP_VECTOR, 0, 1, 0));
> for_each_possible_cpu(cpu)
> per_cpu(vector_irq, cpu)[IRQ_MOVE_CLEANUP_VECTOR] =
> IRQ_MOVE_CLEANUP_VECTOR;
> +#endif
Looks like you picked up the instrumentation hunk instead of the actual
fix. ;)
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2015-08-26 18:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-26 17:01 [Xenomai] [PATCH] x86/ipipe: reserve irq num we use for IRQ_MOVE_CLEANUP_VECTOR Henning Schild
2015-08-26 18:32 ` Jan Kiszka [this message]
2015-08-27 8:42 ` Henning Schild
2015-08-27 9:12 ` Gilles Chanteperdrix
2015-08-27 9:15 ` Jan Kiszka
2015-08-27 9:39 ` [Xenomai] [PATCHv2] " Henning Schild
2015-08-27 9:41 ` Jan Kiszka
2015-08-27 10:20 ` [Xenomai] [PATCHv3] " Henning Schild
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=55DE0659.9050803@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=henning.schild@siemens.com \
--cc=xenomai@xenomai.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.