Re: [Patch] Per CPU MCA/INIT data save areas

From: Russ Anderson <>
Date: 2004-09-16 01:43:02
Keith Owens wrote:
> On Tue, 14 Sep 2004 10:30:44 -0500 (CDT), Russ Anderson <> wrote:
> >Takao Indoh wrote:
> >> BTW, I used tpa to get physical address, but I am not sure TLB is valid 
> >> in the OS_INIT. tpa is available?
> >
> >There may not be a valid TLB.  That's why DATA_VA_TO_PA() cannot be used
> >in the OS_MCA path.  LOAD_PHYSICAL() is used instead (in the original MCA code).  
> >I'm not sure if LOAD_PHYSICAL() is sufficient either in this context (but that 
> >may just be my lack of understanding).
> LOAD_PHYSICAL() only works for physically unique addresses (one to one
> mapping from virtual to physical address at load time), it does not
> work for replicated areas like the per cpu data area.  As Russ has
> said, tpa is not reliable in MCA/INIT paths, one of the possible
> reasons for taking an MCA is an invalid tlb load :(.  Which means that
> we need a second data area which contains the physical addresses of
> each of the per cpu data areas.  MCA/INIT can do a LOAD_PHYSICAL() on
> the start of that table, then index by cpu to get the physical address
> of the local per cpu table.

Thanks for the explanation, Keith.

My original intent was to avoid any off node accesses in recording the
per-CPU MCA/INIT info, by putting a pointer to the MCA/INIT save area
in the cpu_info structure.  Getting the physical address of that pointer 
is more difficult than I thought.

Unless anyone has a better solution, I think Keith's suggestion is the
next best alternative.  It is no worse than the current code (in terms of
off-node access) and allows forward progress on the rest of the code.

Russ Anderson, OS RAS/Partitioning Project Lead  
SGI - Silicon Graphics Inc
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Wed Sep 15 11:46:21 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:30 EST