* INIT handler modification
@ 2005-01-07 14:13 Francois Wellenreiter
2005-01-07 17:51 ` Bjorn Helgaas
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Francois Wellenreiter @ 2005-01-07 14:13 UTC (permalink / raw)
To: linux-ia64
Dear all,
first of all, my best wishes for this new year.
Second, I just wanted to start a discussion about INIT handler
considerations.
Here is the main point, the present code of INIT handler for slave CPUs
is reduced
to (file arch/ia64/kernel/mca_asm.S) :
______________________________
GLOBAL_ENTRY(ia64_slave_init_handler)
1: br.sptk 1b
END(ia64_slave_init_handler)
______________________________
I think that when the kernel is deadlocked on another CPU than the
monarch one,
the traces may be a bit short when I push on the "DUMP" button to have a
complete
diagnosis of my system.
Thus, I propose you to change the following code (file
arch/ia64/kernel/mca.c)
______________________________
void __init
ia64_mca_init(void)
{
ia64_fptr_t *mon_init_ptr = (ia64_fptr_t
*)ia64_monarch_init_handler;
ia64_fptr_t *slave_init_ptr = (ia64_fptr_t
*)ia64_slave_init_handler;
.....
______________________________
into
______________________________
void __init
ia64_mca_init(void)
{
ia64_fptr_t *mon_init_ptr = (ia64_fptr_t
*)ia64_monarch_init_handler;
ia64_fptr_t *slave_init_ptr = (ia64_fptr_t
*)ia64_monarch_init_handler;
.....
______________________________
What do you think about it ? Do you fear it may induce an unwanted
behavior towards MCA handling ?
Best regards,
Francois WELLENREITER
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: INIT handler modification
2005-01-07 14:13 INIT handler modification Francois Wellenreiter
@ 2005-01-07 17:51 ` Bjorn Helgaas
2005-01-07 23:57 ` Luck, Tony
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Bjorn Helgaas @ 2005-01-07 17:51 UTC (permalink / raw)
To: linux-ia64
On Fri, 2005-01-07 at 15:13 +0100, Francois Wellenreiter wrote:
> Here is the main point, the present code of INIT handler for slave CPUs
> is reduced
> to (file arch/ia64/kernel/mca_asm.S) :
> ______________________________
>
> GLOBAL_ENTRY(ia64_slave_init_handler)
> 1: br.sptk 1b
> END(ia64_slave_init_handler)
> ______________________________
>
> I think that when the kernel is deadlocked on another CPU than the
> monarch one,
> the traces may be a bit short when I push on the "DUMP" button to have a
> complete
> diagnosis of my system.
You're right, this is a serious problem that needs to be fixed.
Unfortunately, it's a little more complicated than the change
you propose, because we need per-CPU areas (or locking) for
saving the min-state areas from firmware. I think the recent
"per cpu MCA/INIT" changes are heading in this direction, so
please take a look at those, try them out, and improve them!
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: INIT handler modification
2005-01-07 14:13 INIT handler modification Francois Wellenreiter
2005-01-07 17:51 ` Bjorn Helgaas
@ 2005-01-07 23:57 ` Luck, Tony
2005-01-08 1:26 ` Keith Owens
2005-01-09 17:21 ` Russ Anderson
3 siblings, 0 replies; 5+ messages in thread
From: Luck, Tony @ 2005-01-07 23:57 UTC (permalink / raw)
To: linux-ia64
>You're right, this is a serious problem that needs to be fixed.
>Unfortunately, it's a little more complicated than the change
>you propose, because we need per-CPU areas (or locking) for
>saving the min-state areas from firmware. I think the recent
>"per cpu MCA/INIT" changes are heading in this direction, so
>please take a look at those, try them out, and improve them!
There should be enough parts of Russ Anderson's changes in the
http://linux-ia64.bkbits.net/linux-ia64-test-2.6.11 tree to give
this a try. It should also show up in the next -mm patch (it
missed 2.6.10-mm2).
You'd need to add some serialization in ia64_init_handler() and/or
init_handler_platform() to make sure that all the cpus didn't stomp
all over each other printing their registers, and you'll only want
one of them to walk the tasklist providing backtraces.
-Tony
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: INIT handler modification
2005-01-07 14:13 INIT handler modification Francois Wellenreiter
2005-01-07 17:51 ` Bjorn Helgaas
2005-01-07 23:57 ` Luck, Tony
@ 2005-01-08 1:26 ` Keith Owens
2005-01-09 17:21 ` Russ Anderson
3 siblings, 0 replies; 5+ messages in thread
From: Keith Owens @ 2005-01-08 1:26 UTC (permalink / raw)
To: linux-ia64
On Fri, 07 Jan 2005 15:13:31 +0100,
Francois Wellenreiter <Francois.Wellenreiter@Ext.Bull.Net> wrote:
>Here is the main point, the present code of INIT handler for slave CPUs
>is reduced
>to (file arch/ia64/kernel/mca_asm.S) :
>______________________________
>
>GLOBAL_ENTRY(ia64_slave_init_handler)
>1: br.sptk 1b
>END(ia64_slave_init_handler)
>______________________________
The limitations on slave INIT and MCA handlers are mainly due to the
lack of kernel stacks to handle these events. Russ Anderson (SGI) is
working on patches that add per cpu stacks for MCA and INIT. Once
those patches are in the base kernel, we will be changing the INIT and
MCA slave handlers to use the multiple stacks. That will give us real
processing for the slave events.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: INIT handler modification
2005-01-07 14:13 INIT handler modification Francois Wellenreiter
` (2 preceding siblings ...)
2005-01-08 1:26 ` Keith Owens
@ 2005-01-09 17:21 ` Russ Anderson
3 siblings, 0 replies; 5+ messages in thread
From: Russ Anderson @ 2005-01-09 17:21 UTC (permalink / raw)
To: linux-ia64
Keith Owens wrote:
> Francois Wellenreiter <Francois.Wellenreiter@Ext.Bull.Net> wrote:
>
> The limitations on slave INIT and MCA handlers are mainly due to the
> lack of kernel stacks to handle these events. Russ Anderson (SGI) is
> working on patches that add per cpu stacks for MCA and INIT. Once
> those patches are in the base kernel, we will be changing the INIT and
> MCA slave handlers to use the multiple stacks. That will give us real
> processing for the slave events.
Tony has put the patches in his test-2.6.11 tree. Those patches should
have enough support to allow the INIT and MCA slave handlers to use
the multiple stacks.
Thanks,
--
Russ Anderson, OS RAS/Partitioning Project Lead
SGI - Silicon Graphics Inc rja@sgi.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-01-09 17:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-07 14:13 INIT handler modification Francois Wellenreiter
2005-01-07 17:51 ` Bjorn Helgaas
2005-01-07 23:57 ` Luck, Tony
2005-01-08 1:26 ` Keith Owens
2005-01-09 17:21 ` Russ Anderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox