public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* 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