|
|
|
|
|
|
|
|
|
|
xen-ppc-devel
Re: [XenPPC] [PATCH] Linker script causes SMP memory corruption
Ahh, this stuff is so wonky it is so easy to miss the _real_ reason :)
On Aug 19, 2006, at 2:22 AM, Amos Waterland wrote:
To understand the context for this patch, observe that the
following is
the case in stock Xen/PPC:
$ nm xen-syms | egrep ' per_cpu__|__per_cpu' | sort
000000000044c680 d per_cpu__domain_shuttingdown
000000000044c688 D per_cpu__mc_state
000000000044c700 d per_cpu__t_timer
...
000000000045cc80 D per_cpu__tlbflush_time
000000000045d2b0 A __per_cpu_data_end
000000000045d2b0 A __per_cpu_start
0000000000460000 A __per_cpu_end
So what is actually happening is that your .data.percpu sections are
getting sucked up by the linker before the section description we
actually want to be used.
This is the correct fix (possible MUA mangling):
diff -r 539a1e666982 xen/arch/powerpc/xen.lds.S
--- a/xen/arch/powerpc/xen.lds.S Fri Aug 18 14:07:50 2006 -0400
+++ b/xen/arch/powerpc/xen.lds.S Sun Aug 20 10:57:46 2006 -0400
@@ -107,7 +107,7 @@ SECTIONS
PROVIDE (__fini_array_end = .);
.data :
{
- *(.data .data.* .gnu.linkonce.d.*)
+ *(.data .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
this .data.* catch-all got your sections before the one we define
even had a chance :)
I'll commit this fix when I fix everything else I broke :-D
-JX
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|
|
|
|
|