2008-08-18 21:38:26

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: [PATCH 1/2] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'

Alex Nixon wrote:
> From: Alex Nixon <[email protected]>
> Date: Mon, 18 Aug 2008 12:56:48 +0100
> Subject: [PATCH] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'
>
> Following commit 9c3f2468d8339866d9ef6a25aae31a8909c6be0d, do_IRQ() looks up the IRQ number in the per-cpu variable vector_irq.
>
> This commit makes Xen initialise an identity vector_irq map for both X86_32 and X86_64.
>

Thanks Alex.

Ingo, please apply.

Acked-by: Jeremy Fitzhardinge <[email protected]>

> Signed-off-by: Alex Nixon <[email protected]>
> ---
> arch/x86/xen/irq.c | 2 --
> 1 files changed, 0 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
> index 28b85ab..bb04260 100644
> --- a/arch/x86/xen/irq.c
> +++ b/arch/x86/xen/irq.c
> @@ -21,7 +21,6 @@ void xen_force_evtchn_callback(void)
>
> static void __init __xen_init_IRQ(void)
> {
> -#ifdef CONFIG_X86_64
> int i;
>
> /* Create identity vector->irq map */
> @@ -31,7 +30,6 @@ static void __init __xen_init_IRQ(void)
> for_each_possible_cpu(cpu)
> per_cpu(vector_irq, cpu)[i] = i;
> }
> -#endif /* CONFIG_X86_64 */
>
> xen_init_IRQ();
> }
>


2008-08-19 01:20:12

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH 1/2] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'


* Jeremy Fitzhardinge <[email protected]> wrote:

> Alex Nixon wrote:
> > From: Alex Nixon <[email protected]>
> > Date: Mon, 18 Aug 2008 12:56:48 +0100
> > Subject: [PATCH] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'
> >
> > Following commit 9c3f2468d8339866d9ef6a25aae31a8909c6be0d, do_IRQ() looks up the IRQ number in the per-cpu variable vector_irq.
> >
> > This commit makes Xen initialise an identity vector_irq map for both X86_32 and X86_64.
> >
>
> Thanks Alex.
>
> Ingo, please apply.
>
> Acked-by: Jeremy Fitzhardinge <[email protected]>

i didnt get the original patches (they arent on lkml) - could you please
resend them with your Acked-by line added as well?

by the looks of it, both are needed for v2.6.27, agreed?

Ingo

2008-08-19 01:33:44

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 1/2] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'

On Mon, Aug 18, 2008 at 6:19 PM, Ingo Molnar <[email protected]> wrote:
>
> * Jeremy Fitzhardinge <[email protected]> wrote:
>
>> Alex Nixon wrote:
>> > From: Alex Nixon <[email protected]>
>> > Date: Mon, 18 Aug 2008 12:56:48 +0100
>> > Subject: [PATCH] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'
>> >
>> > Following commit 9c3f2468d8339866d9ef6a25aae31a8909c6be0d, do_IRQ() looks up the IRQ number in the per-cpu variable vector_irq.
>> >
>> > This commit makes Xen initialise an identity vector_irq map for both X86_32 and X86_64.
>> >
>>
>> Thanks Alex.
>>
>> Ingo, please apply.
>>
>> Acked-by: Jeremy Fitzhardinge <[email protected]>
>
> i didnt get the original patches (they arent on lkml) - could you please
> resend them with your Acked-by line added as well?
>
> by the looks of it, both are needed for v2.6.27, agreed?
>

no,

only tip/irq/sparseirq make 32 bit support per_cpu vector.

YH

2008-08-19 01:36:45

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 1/2] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'

On Mon, Aug 18, 2008 at 2:38 PM, Jeremy Fitzhardinge <[email protected]> wrote:
> Alex Nixon wrote:
>> From: Alex Nixon <[email protected]>
>> Date: Mon, 18 Aug 2008 12:56:48 +0100
>> Subject: [PATCH] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'
>>
>> Following commit 9c3f2468d8339866d9ef6a25aae31a8909c6be0d, do_IRQ() looks up the IRQ number in the per-cpu variable vector_irq.
>>
>> This commit makes Xen initialise an identity vector_irq map for both X86_32 and X86_64.
>>
>
> Thanks Alex.
>
> Ingo, please apply.
>
> Acked-by: Jeremy Fitzhardinge <[email protected]>
>
>> Signed-off-by: Alex Nixon <[email protected]>
>> ---
>> arch/x86/xen/irq.c | 2 --
>> 1 files changed, 0 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
>> index 28b85ab..bb04260 100644
>> --- a/arch/x86/xen/irq.c
>> +++ b/arch/x86/xen/irq.c
>> @@ -21,7 +21,6 @@ void xen_force_evtchn_callback(void)
>>
>> static void __init __xen_init_IRQ(void)
>> {
>> -#ifdef CONFIG_X86_64
>> int i;
>>
>> /* Create identity vector->irq map */
>> @@ -31,7 +30,6 @@ static void __init __xen_init_IRQ(void)
>> for_each_possible_cpu(cpu)
>> per_cpu(vector_irq, cpu)[i] = i;
>> }
>> -#endif /* CONFIG_X86_64 */
>>
>> xen_init_IRQ();
>> }
>>


Rusty,
can you check tip/master with lguest? wonder you need to do sth for lguest too.
we are making 32 bit support per_cpu vector like 64 bit

also alok, can you check vmi etc...

Thanks

Yinghai Lu

2008-08-19 19:22:35

by Alok Kataria

[permalink] [raw]
Subject: Re: [PATCH 1/2] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'

On Mon, 2008-08-18 at 18:36 -0700, Yinghai Lu wrote:
> On Mon, Aug 18, 2008 at 2:38 PM, Jeremy Fitzhardinge <[email protected]> wrote:
> > Alex Nixon wrote:
> >> From: Alex Nixon <[email protected]>
> >> Date: Mon, 18 Aug 2008 12:56:48 +0100
> >> Subject: [PATCH] Xen: Fix bug `do_IRQ: cannot handle IRQ -1 vector 0x6 cpu 1'
> >>
> >> Following commit 9c3f2468d8339866d9ef6a25aae31a8909c6be0d, do_IRQ() looks up the IRQ number in the per-cpu variable vector_irq.
> >>
> >> This commit makes Xen initialise an identity vector_irq map for both X86_32 and X86_64.
> >>
> >
> > Thanks Alex.
> >
> > Ingo, please apply.
> >
> > Acked-by: Jeremy Fitzhardinge <[email protected]>
> >
> >> Signed-off-by: Alex Nixon <[email protected]>
> >> ---
> >> arch/x86/xen/irq.c | 2 --
> >> 1 files changed, 0 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
> >> index 28b85ab..bb04260 100644
> >> --- a/arch/x86/xen/irq.c
> >> +++ b/arch/x86/xen/irq.c
> >> @@ -21,7 +21,6 @@ void xen_force_evtchn_callback(void)
> >>
> >> static void __init __xen_init_IRQ(void)
> >> {
> >> -#ifdef CONFIG_X86_64
> >> int i;
> >>
> >> /* Create identity vector->irq map */
> >> @@ -31,7 +30,6 @@ static void __init __xen_init_IRQ(void)
> >> for_each_possible_cpu(cpu)
> >> per_cpu(vector_irq, cpu)[i] = i;
> >> }
> >> -#endif /* CONFIG_X86_64 */
> >>
> >> xen_init_IRQ();
> >> }
> >>
>
>
> Rusty,
> can you check tip/master with lguest? wonder you need to do sth for lguest too.
> we are making 32 bit support per_cpu vector like 64 bit
>
> also alok, can you check vmi etc...

Yes it crashes VMI too, i will get down to debug this maybe later in the
day.
Thanks YH, for bringing this to my attention.

Alok.