From: Horms <horms@verge.net.au>
To: linux-ia64@vger.kernel.org
Subject: Re: panic from vector domain patch (was RE: Linus' tree broken?)
Date: Thu, 26 Jul 2007 02:55:04 +0000 [thread overview]
Message-ID: <20070726025502.GA15706@verge.net.au> (raw)
In-Reply-To: <1185239265.19353.6.camel@phobos>
On Wed, Jul 25, 2007 at 11:26:42AM -0400, Doug Chapman wrote:
> On Wed, 2007-07-25 at 22:37 +0900, Horms wrote:
>
> > I was also seeing a strange problem relating to the
> > vector domain patch which seemed to be causing
> > corruption of vectors_in_migration, which caused migrate_irqs()
> > to emmit suprious IRQ errors (when called by kexec).
> >
> > I'll try and confirm that this patch soles the problem that
> > I was seeing tomorrow.
> >
>
> You may also want to try this patch:
> http://www.mail-archive.com/linux-ia64@vger.kernel.org/msg03113.html
Hi Doug, Hi Ishimatsu-san,
I've tested both of these patches against my problem,
and I notice that they have both been incoporated into
Linus's tree.
It seems that "vector-domain - handle assign_irq_vector(AUTO_ASSIGN)"
(8f5ad1a8227aa110d633b5ed04dde535381c16c7) had no effect on
the problem that I was seeing. But "vector-domain - fix vector_table"
(6ffbc82351c62eeeeaeb9e817ddf93049353493d) appears to resolve the
problem.
As I spent quite a lot of time examining this problem I'll
put my findings below, on the off chance they are of use to
someone in the future.
In my .bss I see that vector_table is right next to
vectors_in_migration, so it seems to make a lot of sense
that inapropriate access to vector_table was corrupting
vectors_in_migration. Furthermore, I added farily large
array, vectors_in_migration_guard between vectors_in_migration and
vector_table and the problem went away, wich seems to futher
pack up the coruption caused by access to vector_table idea.
a000000100587eb8 <vectors_in_migration>:
...
a0000001005884b8 <vector_table>:
...
I guess that if CPU_HOTPLUG was disabled then some other table
would be corrupted, perhaps one that is accessed much more often
than vectors_in_migration.
For the record, the IRQ errors on kexec
were being caused by fixup_irqs() making inapropriate
calls to generic_handle_irq() due to the corruption of
vectors_in_migration. fixup_irqs() is indirectly called by cpu_down().
The log on a system with NR_CPUS=4 is below:
# do_kexec
Kexec: Linux->Linux
Create ramdisk
19296 /tmp/initramfs_data.cpio
kexec-ia64 -l "/boot/vmlinux-ia64-kexec.gz" \
--initrd=/tmp/initramfs_data.cpio \
--append="NAME=rx2620 ip=on loglevel=8 console=tty0 console=uart,mmio,0xff5e0000,115200n8"
Kexec
kexec-ia64 -e
Starting new kernel
ifdown: socket: Function not implemented
irq 318, desc: a00000010050cb00, depth: 1, count: 0, unhandled: 0
->handle_irq(): a000000100437c80, __end_rodata+0x34d8/0x13858
->chip(): a000000100563848, no_irq_chip+0x0/0x80
->action(): 0000000000000000
IRQ_DISABLED set
Unexpected irq vector 0x13e on CPU 1!
irq 344, desc: a00000010050d800, depth: 1, count: 0, unhandled: 0
->handle_irq(): a000000100437c80, __end_rodata+0x34d8/0x13858
->chip(): a000000100563848, no_irq_chip+0x0/0x80
->action(): 0000000000000000
IRQ_DISABLED set
Unexpected irq vector 0x158 on CPU 1!
irq 346, desc: a00000010050d900, depth: 1, count: 0, unhandled: 0
->handle_irq(): a000000100437c80, __end_rodata+0x34d8/0x13858
->chip(): a000000100563848, no_irq_chip+0x0/0x80
->action(): 0000000000000000
IRQ_DISABLED set
Unexpected irq vector 0x15a on CPU 1!
irq 350, desc: a00000010050db00, depth: 1, count: 0, unhandled: 0
->handle_irq(): a000000100437c80, __end_rodata+0x34d8/0x13858
->chip(): a000000100563848, no_irq_chip+0x0/0x80
->action(): 0000000000000000
IRQ_DISABLED set
Unexpected irq vector 0x15e on CPU 1!
CPU 1 is now offline
Linux version 2.6.23-rc1-kexec-ge4903fb5-dirty (horms@tabatha.lab.ultramonkey.org) (gcc version 3.4.5) #173 SMP Thu Jul 26 11:36:46 JST 2007
--
Horms
H: http://www.vergenet.net/~horms/
W: http://www.valinux.co.jp/en/
next prev parent reply other threads:[~2007-07-26 2:55 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-24 1:07 panic from vector domain patch (was RE: Linus' tree broken?) Doug Chapman
2007-07-24 2:06 ` Doug Chapman
2007-07-24 2:26 ` Yasuaki Ishimatsu
2007-07-24 13:09 ` Yasuaki Ishimatsu
2007-07-24 13:55 ` Doug Chapman
2007-07-24 14:28 ` Kenji Kaneshige
2007-07-25 0:19 ` Yasuaki Ishimatsu
2007-07-25 1:12 ` Doug Chapman
2007-07-25 2:55 ` Doug Chapman
2007-07-25 5:09 ` Doug Chapman
2007-07-25 8:59 ` Kenji Kaneshige
2007-07-25 13:03 ` Doug Chapman
2007-07-25 13:37 ` Horms
2007-07-25 15:26 ` Doug Chapman
2007-07-26 1:31 ` Horms
2007-07-26 2:55 ` Horms [this message]
2007-07-30 9:56 ` Jes Sorensen
2007-07-30 13:42 ` Doug Chapman
2007-07-30 13:53 ` Jes Sorensen
2007-07-31 14:34 ` Jes Sorensen
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=20070726025502.GA15706@verge.net.au \
--to=horms@verge.net.au \
--cc=linux-ia64@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox